mpvue

mpvue是一个使用Vue.js开发小程序的前端框架,由美团点评技术团队开发,在2018年3月开源。

框架原理:

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

新建项目:

  1. 全局安装vue-cli:npm install --global vue-cli
  2. 安装桥接工具:npm install -g @vue/cli-init
  3. 创建一个基于项目mpvue-quickstart模板的新项目mpvue-demo:vue init mpvue/mpvue-quickstart mpvue-demo
  4. 安装依赖:npm install
  5. 启动项目:npm run dev
  6. 在Webstorm中导入项目进行开发,在微信开发者工具中导入项目进行调试;
    mpvuempvue

生命周期:

除了Vue本身的生命周期外,mpvue还兼容了小程序生命周期。但除特殊情况下,不建议使用小程序的生命周期钩子。

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

模板语法:

  1. 不支持v-html指令。
  2. 不支持复杂的JS渲染表达式。
  3. 不支持过滤器。

Class与Style绑定:

  1. 不支持classObject 和 styleObject 语法。
  2. 不支持在组件上使用Class与Style绑定。

小程序组件:

mpvue可以支持小程序的原生组件,比如:picker等,但是原生组件上的事件绑定,需要以vue的事件绑定语法来绑定,比如:bindchange需要写成@change