写了vue项目和小程序发现二者有许多相同之处在此想总结一下二者的共同点和区别。
一、生命周期先贴两张图:
小程序生命周期
相比之下思维方式在此想总结一下二者的共同点和区别。
一、生命周期先贴两张图:
vue生命周期
小程序生命周期
相比之下小程序的钩子函数要简单得多。
vue的钩子函数在跳转新页面时钩子函数都会触发但是小程序的钩子函数页面不同的跳转方式触发的钩子并不一样。
onLoad: 页面加载
一个页面只会调用一次可以在 onLoad 中获取打开当前页面所调用的 query 参数。
onShow: 页面显示
每次打开页面都会调用一次。
onReady: 页面初次渲染完成
一个页面只会调用一次代表页面已经准备妥当可以和视图层进行交互。
对界面的设置如wx.setNavigationBarTitle请在onReady之后设置。详见生命周期
onHide: 页面隐藏
当navigateTo或底部tab切换时调用。
onUnload: 页面卸载
当redirectTo或navigateBack的时候调用。
数据请求
在页面加载请求数据时两者钩子的使用有些类似seoer两者钩子的使用有些类似vue一般会在created或者mounted中请求数据而在小程序会在onLoad或者onShow中请求数据。
二、数据绑定VUE:vue动态绑定一个变量的值为元素的某个属性的时候会在变量前面加上冒号:例:
<img :src="imgSrc"/>小程序:绑定某个变量的值为元素属性时会用两个大括号括起来seoer会用两个大括号括起来如果不加括号为被认为是字符串。例:
<image src="{{imgSrc}}"></image> 三、列表渲染直接贴代码两者还是有些相似
vue: <ul id="example-1"> <li v-for="item in items"> {{ item.message }} </li> </ul> var example1 = new Vue({ el: '#example-1', data: { items: [ { message: 'Foo' }, { message: 'Bar' } ] } }) 小程序: Page({ data: { items: [ { message: 'Foo' }, { message: 'Bar' } ] } }) <text wx:for="{{items}}">{{item}}</text> 四、显示与隐藏元素vue中seoer两者还是有些相似
vue: <ul id="example-1"> <li v-for="item in items"> {{ item.message }} </li> </ul> var example1 = new Vue({ el: '#example-1', data: { items: [ { message: 'Foo' }, { message: 'Bar' } ] } }) 小程序: Page({ data: { items: [ { message: 'Foo' }, { message: 'Bar' } ] } }) <text wx:for="{{items}}">{{item}}</text> 四、显示与隐藏元素vue中使用v-if 和v-show控制元素的显示和隐藏
小程序中使用wx-if和hidden控制元素的显示和隐藏
五、事件处理vue:使用v-on:event绑定事件或者使用@event绑定事件,例如:
<button v-on:click="counter += 1">Add 1</button> <button v-on:click.stop="counter+=1">Add1</button> //阻止事件冒泡小程序中全用bindtap(bind+event)或者catchtap(catch+event)绑定事件,例如:
<button bindtap="noWork">明天不上班</button> <button catchtap="noWork">明天不上班</button> //阻止事件冒泡 六、数据双向绑定 1.设置值在vue中,只需要再表单元素上加上v-model,然后再绑定data中对应的一个值当表单元素内容发生变化时data中对应的值也会相应改变这是vue非常nice的一点。
<div id="app"> <input v-model="reason" placeholder="填写理由" class='reason'/> </div> new Vue({ el: '#app', data: { reason:'' } })但是在小程序中却没有这个功能。那怎么办呢?