使用mpVue构建小程序

原理

mpVue是使用vue.js来开发小程序的一个前端框架。框架基于vue.js核心,改写了vue.js的runtime和compiler实现,使其可以运行在小程序环境中。

  • mpvue 保留了 vue.runtime 核心方法,无缝继承了 Vue.js 的基础能力
  • mpvue-template-compiler 提供了将 vue 的模板语法转换到小程序的 wxml 语法的能力
  • 修改了 vue 的建构配置,使之构建出符合小程序项目结构的代码格式: json/wxml/wxss/js 文件

好处

使用 mpvue 开发小程序,你将在相比开发原生小程序技术体系的基础上获取到这样一些能力:

  • 彻底的组件化开发能力:提高代码复用性   【比较大的一个好处是构建组件方便很多】
  • 完整的 Vue.js 开发体验  【对于本来熟悉vue.js的开发者来说会更容易上手】
  • 方便的 Vuex 数据管理方案:方便构建复杂应用  【这个其实跟小程序原生的globalData有点相类似,笔者觉得globalData或者setStorage()可能更好用】
  • 快捷的 webpack 构建机制:自定义构建策略、开发阶段 hotReload  
  • 支持使用 npm 外部依赖 【目前有很多插件都没有小程序版本的,用npm依赖还是比较方便的,但是要注意可能支持性不一定很好】
  • 使用 Vue.js 命令行工具 vue-cli 快速初始化项目  【小程序本身的初始化项目也比较快】
  • H5 代码转换编译成小程序目标代码的能力
  • 可以使用sass,less等css扩展语言,提高样式书写效率

生命周期

1、原生小程序生命周期

App()

onLaunchFunction生命周期函数--监听小程序初始化当小程序初始化完成时,会触发 onLaunch(全局只触发一次)
onShowFunction生命周期函数--监听小程序显示当小程序启动,或从后台进入前台显示,会触发 onShow
onHideFunction生命周期函数--监听小程序隐藏当小程序从前台进入后台,会触发 onHide
onErrorFunction错误监听函数当小程序发生脚本错误,或者 api 调用失败时,会触发 onError 并带上错误信息
onPageNotFoundFunction页面不存在监听函数当小程序出现要打开的页面不存在的情况,会带上页面信息回调该函数,详见下文
其他Any开发者可以添加任意的函数或数据到 Object 参数中,用 this 可以访问


全局的 getApp() 函数可以用来获取到小程序实例。

// other.js
var app= getApp()
console.log(app.globalData) // I am global data复制代码

Page() 函数用来注册一个页面。接受一个 object 参数,其指定页面的初始数据、生命周期函数、事件处理函数等。

object 参数说明:

属性类型描述
dataObject页面的初始数据
onLoadFunction生命周期函数--监听页面加载
onReadyFunction生命周期函数--监听页面初次渲染完成
onShowFunction生命周期函数--监听页面显示
onHideFunction生命周期函数--监听页面隐藏
onUnloadFunction生命周期函数--监听页面卸载
onPullDownRefreshFunction页面相关事件处理函数--监听用户下拉动作
onReachBottomFunction页面上拉触底事件的处理函数
onShareAppMessageFunction用户点击右上角转发
onPageScrollFunction页面滚动触发事件的处理函数
onTabItemTapFunction当前是 tab 页时,点击 tab 时触发
其他Any开发者可以添加任意的函数或数据到 object 参数中,在页面的函数中用 this 可以访问
2、vue.js生命周期


3、mpVue的生命周期

同 vue,不同的是我们会在小程序 onReady 后,再去触发 vue mounted 生命周期

  • beforeCreate
  • created
  • beforeMount
  • mounted
  • beforeUpdate
  • updated
  • activated
  • deactivated
  • beforeDestroy
  • destroyed

除了 Vue 本身的生命周期外,mpvue 还兼容了小程序生命周期,这部分生命周期钩子的来源于微信小程序的 Page, 除特殊情况外,不建议使用小程序的生命周期钩子。

注意点:

  1. 不要在选项属性或回调上使用箭头函数,比如 created: () => console.log(this.a)vm.$watch('a', newValue => this.myMethod())。因为箭头函数是和父级上下文绑定在一起的,this 不会是如你做预期的 Vue 实例,且 this.athis.myMethod 也会是未定义的。

  2. 微信小程序的页面的 query 参数是通过 onLoad 获取的,mpvue 对此进行了优化,直接通过 this.$root.$mp.query 获取相应的参数数据,其调用需要在 onLoad 生命周期触发之后使用,比如 onShow



转载于:https://juejin.im/post/5aeab971f265da0b71561c8f

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值