多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
### **模板语法** UOkay使用了基于 HTML 的模板语法,允许开发者声明式地将 DOM 绑定至底层UOkay实例的数据。与其他MVVM框架类似,UOkay根据DOM树构建成虚拟节点树。结合响应系统,UOkay能自动计算数据变化产生的DOM变化,做出响应。 #### **文本** 我们将需要绑定的数据通过双大括号包围,进行文本插值。 ~~~ <div id = "app"> 你好! {{message}} </div> ~~~ 上面代码中的message会被替代为对应数据对象message值或行为Action上的message属性。当数据对象message或行为属性发生变化时,相应的插值也会发生更新。 #### **javascript表达式** UOkay支持javascript四则运算与三目运算 #### 四则运算 ~~~ <div id = "app"> {{a + 1}} </div> ~~~ 输出的结果为a+1的值 #### 三目运算 ~~~ <div id = "app"> {{a == 0?'$':'¥'}} </div> ~~~ 当a = 0时,上面例子将输出$, 当a = 1时,上面例子将输出¥。 UOkay对于javascript表达式也是响应式的,UOkay会提取表达式中所有的变量并与对应的数据对象进行一一绑定。 ### 条件语句 UOkay定义了IF标签,IF标签的condition属性支持javascript语句,并且UOkay会提取语句中的的变量,使得IF节点成为虚拟节点,绑定UOkay的数据系统,形成响应系统。 ~~~ <div id = "app"> <if condition="a == 0"> $ <else> ¥ </else> </if> </div> ~~~ ~~~ var app = new Okay({ ele:'app', data: { a:1 } }) ~~~ 这里需要注意的是ELSE节点是IF标签的子标签,并不是与IF标签同级的标签! 当app.data.a = 1时,视图将输出 ~~~ <else> ¥ </else> ~~~ 当app.data.a = 0时,视图将输出 ~~~ <if condition="a == 0"> $ </if> ~~~ ### for语句 UOkay定义了FOR标签,FOR标签的expre属性并不支持所有javascript循环语句,语法如下: ~~~ <for expre = "item of array"> <!--列表内容--> </for> ~~~ 当前仅支持of关键字。