React 可视化开发工具 Shadow Widget 非正经入门(之五:指令式
本系列博文从 Shadow Widget 作者的视角,解释该框架的设计要点。本篇解释 Shadow Widget 中类 Vue 的控制指令,与指令式界面设计相关。
1. 指令式界面设计Vue 与 Angular 都支持用控制指令描述界面,比如 Vue 中循环创建多个节点: <div v-for="(index,item) in items"> {{ index }} {{ item.message }} </div> Angular 也有类似 2. 节点引用界面设计中常需要照着一个构件的样式,复制出多个,比如下面 <span $=Button sty__='{{"background":"#eee","borderColor":"#ccc"}}' key='btn1'>Test 1</span> <span $='//btn1' key='btn2'>Test 2</span> Shadow Widget 的转义标签也用 3. 开启解释执行的上下文环境控制指令是可计算属性中的一种,可计算属性是一种通过脚本表达式,借助 MJI (Mini Javascript Interpreter) 解释器动态解析计算的属性。比如: <span $=Button sty__='{{"background":"#eee","borderColor":"#ccc"}}' key='btn1'>Test 1</span> <span $='//btn1' key='btn2' data='{{"desc":"Test 2"}}' $html="duals.data.desc"></span> 这里 须注意,可计算属性只在开启 MJI 解释运行环境后才生效,否则它只是常规字串。解释运行环境按需动态开启,用完即自动销毁,有此环境 MJI 才能维护脚本计算的上下文运算关系。有下面几种开启解释运行环境的方式:
4. 栈式调用空间与常规编程语言类似,MJI 解释运行环境也有调用栈,一个 在 MJI 解释运行环境中,按如下方式使用首层调用空间中的变量: props(0).attr duals(0).attr state(0).attr item(0) index(0) count(0) 或简写如下: props.attr duals.attr state.attr item index count 如果读上一层栈中变量: props(-1).attr duals(-1).attr state(-1).attr item(-1) index(-1) count(-1) 再往一层,则用 5. 举一个例子<div $=Panel key='top' height='{null}'> <div $=Div key='msg' dual-required='{30}' $for='' dual-data='{[{"name":"Wayne","age":20},{"name":"George","age":35}]}'> <div $=Ul width='{0.9999}' $title='duals.data.length + " people"' $for='item in duals.data'> <div $=Li $key='"if_" + index' $if='item.age >= duals(-1).required' $html='item.name + " is old"'></div> <div $=Li $key='"el_" + index' $else='' $html='item.name + " is young"'></div> </div> </div> </div> 运行效果如下:
这个例子包含知识点较集中,讲解几个要点:
6. 更多功能本系列博文提供引导式入门介绍,过多细节略去不讲。关于指令式界面设计的内容,重要些的还有:
细节请阅读《Shadow Widget 用户手册》。 本专栏历史文章:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |