mpvue开发小程序步骤详解

这次给大家带来mpvue开发小程序步骤详解,mpvue开发小程序的注意事项有哪些,下面就是实战案例,一起来看一下。

一、实例生命周期

除了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 表达式。

目前可以使用的有 + – * % ?: ! == === >

不支持过滤器

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

不支持函数

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

列表渲染

全支持 官方文档:列表渲染

只是需要注意一点,嵌套列表渲染,必须指定不同的索引!

    
  • {{item.value}}

登录后复制

事件处理器

在 input 和 textarea 中 change 事件会被转为 blur 事件。

踩坑注意:

列表中没有的原生事件也可以使用例如 bindregionchange 事件直接在 dom 上将bind改为@
 @regionchange,同时这个事件也非常特殊,它的 event type 有 begin 和 end
 两个,导致我们无法在handleProxy 中区分到底是什么事件,所以你在监听此类事件的时候同时监听事件名和事件类型既

   

登录后复制

小程序能力所致,bind 和 catch 事件同时绑定时候,只会触发 bind ,catch 不会被触发,要避免踩坑。

事件修饰符

- .stop 的使用会阻止冒泡,但是同时绑定了一个非冒泡事件,会导致该元素上的 catchEventName 失效!

登录后复制

.prevent 可以直接干掉,因为小程序里没有什么默认事件,比如submit并不会跳转页面

.capture 支持 1.0.9

.self 没有可以判断的标识

.once 也不能做,因为小程序没有 removeEventListener, 虽然可以直接在 handleProxy 中处理,但非常的不优雅,违背了原意,暂不考虑

其他 键值修饰符 等在小程序中压根没键盘,所以。。。

三、组件

有且只能使用单文件组件(.vue 组件)的形式进行支持。其他的诸如:动态组件,自定义 render,和

详细的不支持列表:

暂不支持在组件引用时,在组件上定义 click 等原生事件、v-show(可用 v-if 代替)和 class style 等样式属性(例: 样式是不会生效的),因为编译到wxml,小程序不会生成节点,建议写在内部顶级元素上。

Slot(scoped 暂时还没做支持)

动态组件

异步组件

inline-template

X-Templates

keep-alive

transition

class

style

小程序组件

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

示例代码:

          当前选择: {{date}}    

登录后复制

四、常见问题

1. 如何获取小程序在 page onLoad 时候传递的 options

在所有 页面 的组件内可以通过 this.$root.$mp.query 进行获取。

2. 如何获取小程序在 app onLaunch/onShow 时候传递的 options

在所有的组件内可以通过 this.$root.$mp.appOptions 进行获取。

3. 如何捕获 app 的 onError

由于 onError 并不是完整意义的生命周期,所以只提供一个捕获错误的方法,在 app 的根组件上添加名为 onError 的回调函数即可。如下:

export default {   // 只有 app 才会有 onLaunch 的生命周期   onLaunch () {       // ...   },   // 捕获 app error   onError (err) {       console.log(err)   }}

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

前端中排序算法实例详解

JS中使用接口步骤详解

以上就是mpvue开发小程序步骤详解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2757969.html

(0)
上一篇 2025年3月8日 08:03:40
下一篇 2025年3月8日 08:03:47

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Jquery中$.ajax()方法参数详解

    本文是我日常整理些有关jquery ajax()参数详解,由于jquery ajax方法参数比较多,靠大脑记住有点犯难,下面我把内容整理分享到网站,供大家参考 俗说好记性不如个烂笔头,下面是jquery中的ajax方法参数详解,这里整理了一…

    编程技术 2025年3月8日
    200
  • Component与PureComponent使用区别详解

    这次给大家带来Component与PureComponent使用区别详解,Component与PureComponent使用的注意事项有哪些,下面就是实战案例,一起来看一下。 我开始转向使用PureCompoent是因为它是一个更具性能的C…

    编程技术 2025年3月8日
    200
  • JS数组方法使用步骤详解

    这次给大家带来JS数组方法使用步骤详解,JS数组方法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 1.join 作用: 将数组通过指定字符拼接成字符串。语法: string arr.join([separator = &#8216…

    编程技术 2025年3月8日
    200
  • JS字符串方法使用步骤详解

    这次给大家带来JS字符串方法使用步骤详解,JS字符串方法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 1.方法阅读说明 返回值类型 对象.方法名称(参数1[,参数二]);   解释: 返回值类型:指的是函数调用结束后返回的值的类型…

    编程技术 2025年3月8日
    200
  • 正则与回车换行符使用详解

    这次给大家带来正则与回车换行符使用详解,正则与回车换行符使用的注意事项有哪些,下面就是实战案例,一起来看一下。 C#中,读取文本文件内容,里面往往有许多回车换行符(“”),虽然一般不可见,但却实实在在的存在。这时候,使用正则表示式进行匹配,…

    编程技术 2025年3月8日
    200
  • Linux中正则表达式使用详解

    这次给大家带来Linux中正则表达式使用详解,Linux中正则表达式使用的正则表达式有哪些,下面就是实战案例,一起来看一下。 1、组成 普通字符:普通字符串,没有特殊含义正则表达式:在正则表达式中具有特殊的含义正则表达式中常见的meta字符…

    编程技术 2025年3月8日
    200
  • 小程序保存图片分享到朋友圈功能实现

    这次给大家带来小程序保存图片分享到朋友圈功能实现,小程序保存图片分享到朋友圈功能实现的注意事项有哪些,下面就是实战案例,一起来看一下。 说明 首先说明一点,小程序内是不能直接分享到朋友圈的。所以只能通过生成图片,携带小程序二维码,保存到手机…

    2025年3月8日
    200
  • JS轮播停留效果实现步骤详解

    这次给大家带来JS轮播停留效果实现步骤详解,JS轮播停留效果实现的注意事项有哪些,下面就是实战案例,一起来看一下。 一、思路 1.轮播停留与无线滚动十分类似,都是利用属性及变量控制移动实现轮播; 2.不同的是轮播停留需要添加过渡属性搭配定时…

    2025年3月8日 编程技术
    200
  • webpack实战案例详解

    这次给大家带来webpack实战案例详解,webpack实战的注意事项有哪些,下面就是实战案例,一起来看一下。 webpack实战 查看所有文档页面:全栈开发,获取更多信息。 快马加鞭,加班加点,终于把这个文档整理出来了,顺便深入地学习一番…

    编程技术 2025年3月8日
    200
  • 页面中执行上下文使用详解

    这次给大家带来页面中执行上下文使用详解,页面中执行上下文的注意事项有哪些,下面就是实战案例,一起来看一下。 当 JavaScript 代码执行一段可执行代码时,会创建对应的上下文(execution context)并将该上下文压入上下文栈…

    2025年3月8日
    200

发表回复

登录后才能评论