搜索
首页web前端js教程mpvue开发小程序步骤详解

mpvue开发小程序步骤详解

May 24, 2018 pm 03:05 PM
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"

注意点:

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

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

二、模板语法

不支持 纯-HTML

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

不支持部分复杂的 JavaScript 渲染表达式

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

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

不支持过滤器

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

不支持函数

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

列表渲染

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

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

<!-- 在这种嵌套循环的时候, index 和 itemIndex 这种索引是必须指定,且别名不能相同,正确的写法如下 -->
<template>
    <ul v-for="(card, index) in list">
        <li v-for="(item, itemIndex) in card">
            {{item.value}}
        </li>
    </ul>
</template></p>
<h3 id="strong-a-href-http-www-php-cn-code-html-target-blank-事件处理-a-器-strong"><strong><a href="http://www.php.cn/code/5688.html" target="_blank">事件处理</a>器</strong></h3>
<p style="text-align: left;">在 input 和 textarea 中 change 事件会被转为 blur 事件。</p>
<h4 id="strong-踩坑注意-strong"><strong>踩坑注意:</strong></h4>
<ul class=" list-paddingleft-2">
<li>
<p style="text-align: left;">列表中没有的原生事件也可以使用例如 bindregionchange 事件直接在 dom 上将bind改为@<br>  @regionchange,同时这个事件也非常特殊,它的 event type 有 begin 和 end<br>  两个,导致我们无法在handleProxy 中区分到底是什么事件,所以你在监听此类事件的时候同时监听事件名和事件类型既</p>
<pre class="brush:php;toolbar:false">   <map @regionchange="functionName" @end="functionName" @begin="functionName"><map>
  • 小程序能力所致,bind 和 catch 事件同时绑定时候,只会触发 bind ,catch 不会被触发,要避免踩坑。

  • 事件修饰符

    - .stop 的使用会阻止冒泡,但是同时绑定了一个非冒泡事件,会导致该元素上的 catchEventName 失效!
    • .prevent 可以直接干掉,因为小程序里没有什么默认事件,比如submit并不会跳转页面

    • .capture 支持 1.0.9

    • .self 没有可以判断的标识

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

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

  • 三、组件

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

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    Video Face Swap

    Video Face Swap

    使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

    热门文章

    热工具

    SecLists

    SecLists

    SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

    SublimeText3 英文版

    SublimeText3 英文版

    推荐:为Win版本,支持代码提示!

    安全考试浏览器

    安全考试浏览器

    Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    Atom编辑器mac版下载

    Atom编辑器mac版下载

    最流行的的开源编辑器