详解微信开发中视图层(xx.xml)和逻辑层(xx.js)
这篇文章主要介绍了微信小程序 视图层(xx.xml)和逻辑层(xx.js)详细介绍的相关资料,需要的朋友可以参考下 微信小程序可以理解为云OS的概念,微信生态本身就是一个OS。加上微信公众平台和微信开发平台本身已经是非常成熟的架构,能够完美媲美App的功能,同时在交互体验方面也能够做到极致,大有取代App之势。苹果App Store模式的意义在于为第三方软件的提供者提供了方便而又高效的一个软件销售平台。用户购买应用所支付的费用由苹果与应用开发商3:7分成。如果微信小程序商城也采用类似的分佣模式,那8亿多的用户将是一个非常大的无形资产,成为腾讯继游戏、会员、广告后的另一个掘金源。 微信小程序允许人们无需进行下载安装就使用App。用户可以在微信上扫描二维码来打开程序。微信小程序可以应用在安卓和iOS等不同系统上,也可以在不同的平台上分享,因为它本身就类似一个网站页面。 小程序视图层(xx.xml)和逻辑层(xx.js) 整个系统分为两块视图层(View)和逻辑层(App Service) 框架可以让数据与视图非常简单地保持同步。当做数据修改的时候,只需要在逻辑层修改数据,视图层就会做相应的更新。 通过这个简单的例子来看: <!-- This is our View --><view> Hello {{name}}! </view><button bindtap="changeName"> Click me! </button>// This is our App Service.// This is our data.var helloData = { name: 'WeChat'}// Register a Page.Page({ data: helloData, changeName: function(e) { // sent data change to view this.setData({ name: 'MINA' }) }})
视图层为 xx.xml 逻辑层为 xx.js 读取时会先看逻辑层初始数据来填充视图层,视图层触发逻辑层中的事件,逻辑层返回并改变视图层的内容。 逻辑层(App Service) 小程序开发框架的逻辑层是由JavaScript编写。 逻辑层将数据进行处理后发送给视图层,同时接受视图层的事件反馈。 在 JavaScript 的基础上,我们做了一些修改,以方便地开发小程序。
初始化数据 初始化数据将作为页面的第一次渲染。data 将会以 JSON 的形式由逻辑层传至渲染层,所以其数据必须是可以转成 JSON 的格式:字符串,数字,布尔值,对象,数组。 渲染层可以通过 WXML 对数据进行绑定。 示例代码: <view>{{text}}</view><view>{{array[0].msg}}</view>Page({ data: { text: 'init data', array: [{msg: '1'}, {msg: '2'}] }}) Page.prototype.setData() setData 函数用于将数据从逻辑层发送到视图层,同时改变对应的 this.data 的值。 注意: 1.直接修改 this.data 无效,无法改变页面的状态,还会造成数据不一致。 setData() 参数格式 接受一个对象,以 key,value 的形式表示将 this.data 中的 key 对应的值改变成 value。 其中 key 可以非常灵活,以数据路径的形式给出,如 array[2].message,a.b.c.d,并且不需要在 this.data 中预先定义。 示例代码: <!--index.wxml--><view>{{text}}</view><button bindtap="changeText"> Change normal data </button><view>{{array[0].text}}</view><button bindtap="changeItemInArray"> Change Array data </button><view>{{obj.text}}</view><button bindtap="changeItemInObject"> Change Object data </button><view>{{newField.text}}</view><button bindtap="addNewField"> Add new data </button>//index.jsPage({ data: { text: 'init data', array: [{text: 'init data'}], object: { text: 'init data' } }, changeText: function() { // this.data.text = 'changed data' // bad, it can not work this.setData({ text: 'changed data' }) }, changeItemInArray: function() { // you can use this way to modify a danamic data path this.setData({ 'array[0].text':'changed data' }) }, changeItemInObject: function(){ this.setData({ 'object.text': 'changed data' }); }, addNewField: function() { this.setData({ 'newField.text': 'new data' }) }}) 视图层 框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示。 将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层。 WXML(WeiXin Markup language)用于描述页面的结构。 WXSS(WeiXin Style Sheet)用于描述页面的样式。 组件(Component)是视图的基本组成单元。 什么是事件
事件的使用方式 在组件中绑定一个事件处理函数。 如bindtap,当用户点击该组件的时候会在该页面对应的Page中找到相应的事件处理函数。 <view id="tapTest" data-hi="MINA" bindtap="tapName"> Click me! </view>在相应的Page定义中写上相应的事件处理函数,参数是event。Page({ tapName: function(event) { console.log(event) }}) 基础组件 框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发。 什么是组件:
<tagname property="value"> Content goes here ...</tagename> 注意:所有组件与属性都是小写,以连字符-连接 【相关推荐】 1. 微信小程序之页面传值详解 2. 微信小程序开发样式常见的问题整理 3. 利用组件开发微信小程序日历的详细方法 4. 小程序开发之利用co处理异步流程的实例教程 以上就是详解微信开发中视图层(xx.xml)和逻辑层(xx.js)的详细内容,更多请关注php中文网其它相关文章! |
- 上一篇:分享通过api接口将json数据展现出来的实例教程
- 下一篇:微信开发之微信支付