基于vue的微信小程序开发5分钟上手教程(官方文档转) 您所在的位置:网站首页 hbuilder怎么连接微信小程序 基于vue的微信小程序开发5分钟上手教程(官方文档转)

基于vue的微信小程序开发5分钟上手教程(官方文档转)

2023-12-22 10:39| 来源: 网络整理| 查看: 265

使用手册 mpvue 继承自 Vue.js,其技术规范和语法特点与 Vue.js 保持一致。 注:其实就是官方文档,只是习惯看博文学习才直接copy过来的,详见官方文档

本文档适用于有一定 Vue.js 使用经验的开发者。我们默认你已经掌握 Vue.js 技术体系,如果你是新手,你可能需要先熟悉 Vue.js 官方文档。

#五分钟教程 通过 Vue.js 命令行工具 vue-cli,你只需在终端窗口输入几条简单命令,即可快速创建和启动一个带热重载、保存时静态检查、内置代码构建功能的小程序项目:

# 全局安装 vue-cli $ npm install --global vue-cli # 创建一个基于 mpvue-quickstart 模板的新项目 $ vue init mpvue/mpvue-quickstart my-project # 安装依赖 $ cd my-project $ npm install # 启动构建 $ npm run dev

接下来,你只需要启动微信开发者工具,引入项目即可预览到你的第一个 mpvue 小程序。

#框架原理

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

#Vue 实例 支持 官方文档:Vue 实例,同时我们做了一些修改,来适应小程序的独特加载逻辑。

#实例生命周期 同 vue,不同的是我们会在小程序 onReady 后,再去触发 vue mounted 生命周期,详细的 vue 生命周期文档请看生命周期钩子

beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedactivateddeactivatedbeforeDestroydestroyed

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

app 部分:

onLaunch,初始化onShow,当小程序启动,或从后台进入前台显示onHide,当小程序从前台进入后台

page 部分:

onLoad,监听页面加载onShow,监听页面显示onReady,监听页面初次渲染完成onHide,监听页面隐藏onUnload,监听页面卸载onPullDownRefresh,监听用户下拉动作onReachBottom,页面上拉触底事件的处理函数onShareAppMessage,用户点击右上角分享onPageScroll,页面滚动onTabItemTap, 当前是 tab 页时,点击 tab 时触发 (mpvue 0.0.16 支持)

用法示例:

new Vue({ data: { a: 1 }, created () { // `this` 指向 vm 实例 console.log('a is: ' + this.a) }, onShow () { // `this` 指向 vm 实例 console.log('a is: ' + this.a, '小程序触发的 onshow') } }) // => "a is: 1"

注意点:

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

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

#生命周期图示 你不需要立马弄明白所有的东西,不过随着你的不断学习和使用,它的参考价值会越来越高。

生命周期的调用关系和顺序图。 在这里插入图片描述

#模板语法 几乎全支持 官方文档:模板语法,下面讲下不支持的情况。

#不支持纯-HTML 小程序里所有的 BOM/DOM 都不能用,也就是说 v-html 指令不能用。

#不支持部分复杂的 JavaScript 渲染表达式 我们会把 template 中的{{}}双花括号的部分,直接编码到 wxml 文件中,由于微信小程序的能力限制(数据绑定),所以无法支持复杂的 JavaScript 表达式。

目前可以使用的有 + - * % ?: ! == === > < [] .,剩下的还待完善。

{{ message.split('').reverse().join('') }} {{ item.value }}

#不支持过滤器 渲染部分会转成 wxml ,wxml 不支持过滤器,所以这部分功能不支持。

#计算属性 支持 官方文档:计算属性。

#不支持函数 不支持在 template 内使用 methods 中的函数。

#Class 与 Style 绑定 为节约性能,我们将 Class 与 Style 的表达式通过 compiler 硬编码到 wxml 中,支持语法和转换效果如下:

class 支持的语法:

111 222 333 444 555

将分别被转换成:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有