数据如何响应到视图
如今,双向数据绑定&单向数据流 已深入开发者日常,MVMM 开发模式算是框架标配。
示例代码
小程序使用数据响应
<!--wxml-->
<view class="scroller-wrap">
<!--数据绑定-->
<view>{{message}}</view>
<!--条件渲染-->
<view wx:if="{{view == 'WEBVIEW'}}">WEBVIEW</view>
<view wx:elif="{{view == 'APP'}}">APP</view>
<view wx:else="{{view == 'MINA'}}">MINA</view>
<!--列表渲染-->
<view wx:for="{{array}}" wx:for-index="index" wx:for-item="item"
>{{item}}</view
>
</view>
// page.js
Page({
data: {
message: "Hello MINA!",
view: "MINA",
array: [1, 2, 3, 4, 5]
},
onLoad() {
this.setData({
message: "wx"
});
}
});
cml 使用数据响应
<template>
<!--index.cml-->
<view class="scroller-wrap">
<!--数据绑定-->
<view>{{message}}</view>
<!--条件渲染-->
<view c-if="{{view == 'WEBVIEW'}}">WEBVIEW</view>
<view c-else-if="{{view == 'APP'}}">APP</view>
<view c-else="{{view == 'MINA'}}">MINA</view>
<!--列表渲染-->
<view c-for="{{array}}" c-for-index="index" c-for-item="item"
>{{item}}</view
>
</view>
</template>
<script>
class Index {
data = {
message: "Hello MINA!",
view: "MINA",
array: [1, 2, 3, 4, 5]
};
beforeCreate() {
this.message = "cml";
}
}
export default new Index();
</script>
数据响应总结
cml
运行时框架 提供了跨端响应式数据绑定系统(Data binding),当做数据修改的时候,只需要在逻辑层修改数据,视图层就会做相应的更新。
只需要将 view<—>model
交互部分逻辑,作简单迁移,便可使它成为跨多端的数据响应系统。