使用mpvue开发小程序教程
从vue到mpvue再到微信小程序,这么几天下来感觉被搞晕了。三者之间的很多功能存在差异,项目也快接近尾声了,坑也踩了很多了,现在给后来的你们一点总结性经验:
1. 在模板中,动态插入HTML的v-html指令不可用
这条很好理解,小程序的界面并不是基于浏览器的BOM/DOM的,所以不能动态的在界面模板里直接插入HTML片段来显示。
题外话,如果有在小程序里插入html片段的需求怎么办?可以用<rich-text>组件或者wxParse(https://github.com/icindy/wxParse)来实现。
2. 在模板中,用于数据绑定的双括号语法{{}}中的表达式功能存在诸多限制
在Vue本身的模板内双括号语法中,我们可以对绑定变量进行比较丰富的处理,比如:
- 可以调用
methods下的函数, 例如:
<template>
<div>{{ formatMessage(msg) }}</div>
</template> <script>
export default {
data() {
return {
msg: "Hello,World"
}
},
methods: {
formatMessage(str) {
return str.trim().split(',').join('#')
}
}
}
</script>
- 如果变量是对象的话,也可以调用对象的成员方法
<div>{{ msg.trim().split(',').join('#') }}</div>
- 可以使用过滤器来处理变量,最有用的场景算是格式化数据了
<div>{{ msg | format }}</div>
以上这些好用的功能,在mpvue中,记得都是通通不能用的哦!!!
我们只能在双括号中使用一些简单的运算符运算(+ - * % ?: ! == === > < [] .)
但是也得找些可用的替代方案呐,大伙先考虑使用计算属性(computed)来做吧。
3. 在模板中,除事件监听外,其余地方都不能调用methods下的函数
4. 在模板中,不支持直接绑定一个对象到style或class属性上
5. 在模板中,嵌套使用v-for时,必须指定索引index
6. 事件处理中的注意点
// 左侧为WEB事件 : 右侧为对应的小程序事件
{
click: 'tap',
touchstart: 'touchstart',
touchmove: 'touchmove',
touchcancel: 'touchcancel',
touchend: 'touchend',
tap: 'tap',
longtap: 'longtap',
input: 'input',
change: 'change',
submit: 'submit',
blur: 'blur',
focus: 'focus',
reset: 'reset',
confirm: 'confirm',
columnchange: 'columnchange',
linechange: 'linechange',
error: 'error',
scrolltoupper: 'scrolltoupper',
scrolltolower: 'scrolltolower',
scroll: 'scroll'
}
除了上面的之外,Web表单组件<input>和<textarea>的change事件会被转为blur事件。
7. 对于表单,请直接使用小程序原生的表单组件
一句话,表单组件又多又复杂,框架可能Hold不住。所以在实际开发中,推荐直接使用小程序的表单组件标签来写,而不是使用Web的表单组件标签来写。当然了,在mpvue中使用了小程序的组件标签,数据绑定功能还是完全可以用的。给个示例:
<template>
<div>
<picker @change="handlePickerChange" :value="selectedIndex" :range="messages">
<view class="picker">当前消息:{{ messages[selectedIndex] }}</view>
</picker>
</div>
</template> <script>
export default {
data () {
return {
selectedIndex: 0,
messages: ['Hello', 'World', 'Haha']
}
},
methods: {
handlePickerChange (e) {
console.log(e)
}
}
}
</script>
其他注意事项
另外,在Vue开发Web应用的时候,通常使用vue-router来进行页面路由。但是在mpvue小程序开发中,不能用这种方式,请使用<a>标签和小程序原生API wx.navigateTo等来做路由功能。
还有就是请求后端数据,我们通常在Web开发中使用axios等ajax库来实现,但是在小程序开发中也是不能用的,也请使用小程序的原生API wx.request等来进行。
原文链接:https://www.jianshu.com/p/579035fc9c18
使用mpvue开发小程序教程的更多相关文章
- 使用mpvue开发小程序教程(一)
前段时间,美团开源了mpvue这个项目,使得我们又多了一种用来开发小程序的框架选项.由于mpvue框架是完全基于Vue框架的(重写了其runtime和compiler),因此在用法上面是高度和Vue一 ...
- 使用mpvue开发小程序教程(二)
在上篇文章中,我们介绍了使用mpvue开发小程序所需要的一些开发环境的搭建,并创建了第一个mpvue小程序代码骨架并将其运行起来.在本文中,我们来研究熟悉一下mpvue项目的主要目录和文件结构. 在V ...
- 使用mpvue开发小程序教程(三)
在上一篇文章中,我们熟悉了一下通过vue-cli生成的mpvue工程代码骨架的基本结构,大致了解了每一个部分的代码到底要放到何处.从本文起我们就开始涉及真正的编码部分,学习使用Vue的语法去编写小程序 ...
- 使用mpvue开发小程序教程(四)
在上一章节中,我们将vue-cli命令行工具生成的代码骨架中的src目录清理了一遍,然后从头开始配置和编写了一个可以运行的小程序页面,算是正真走上了使用mpvue开发小程序的第一步.今天我们将进一步来 ...
- 使用mpvue开发小程序教程(五)
在上一章节中,我们了解了组件的三个基本特性以及组件的基本使用方法.在实际的小程序开发中,我们应该以组件的思维去设计每个小程序的功能页面,对其进行合理的组件拆分,让每个部分都保持功能简洁.条理清楚.各司 ...
- 使用mpvue开发小程序教程(六)
在上一章节中,我们列举了在Vue中能用但在mpvue中不能用或需要特别注意的特性,在实际开发前了解一下还是很有必要的,可以避免浪费找错误的时间. 如果你使用过原生的小程序框架,你一定经历过或思考过怎么 ...
- 使用mpvue开发小程序
前言: 最近接到小程序的开发需求,由于之前也没开发过小程序,心情还是有点激动.先花15分钟看一遍小程序官方文档,再花10分钟看一遍mpvue官方文档,然后拿着原型图和UI图就开干.踩了不少坑,写篇博客 ...
- 学习笔记:mpvue开发小程序——入门
接下来可能要开发一个小程序,同事推荐使用mpvue,那么我提前熟悉下. 官网地址:http://mpvue.com/ 1.快速上手 http://mpvue.com/mpvue/quickstart/ ...
- mpvue 开发小程序接口数据统一管理
mpvue项目里做API与数据分离统一管理 小程序里请求数据接口使用wx:request,因为考虑项目比较大,最好把wx:request封装起来,统一使用管理 utils.js 配置开发环境和线上环境 ...
随机推荐
- 我的学习笔记之node----node.js+socket.io实时聊天(1)
本想着从hello word开篇,也确实写了相关学习笔记.各种原因吧,现在又着急写出作品,便作罢. 这里将记录一个node.js+socket.io的实时聊天程序.(当然我也是跟着网上各种教程资料学习 ...
- 使用Servlet和JSp在浏览器上实现对数据库表的增删改查(新手)
第一步:用户输入网址进入一个登陆界面. 里面要有账号密码输入. 登陆界面链接到登陆的Servlet类中. Servlet类 --> 1.接收参数(账户密码) 2.调用DAO层的 SQL语句 验 ...
- 网络安全从入门到精通(第一章-1)Web服务器通信原理
本文内容 IP地址 域名 端口 HTTP协议 从访客角度看网页浏览器流程 常见服务器系统 路径 Web容器 常见的Web容器 !!!多动手,多动手,只看只听是不行的!!! 1,IP地址:就是计算机在互 ...
- Dubbo之服务消费原理
前言 上篇文章<Dubbo之服务暴露>分析 Dubbo 服务是如何暴露的,本文接着分析 Dubbo 服务的消费流程.主要从以下几个方面进行分析:注册中心的暴露:通过注册中心进行服务消费通知 ...
- Journal of Proteome Research | Mining the Proteome Associated with Rheumatic and Autoimmune Diseases(挖掘风湿和自身免疫疾病相关的蛋白组)(解读人:黄旭蕾)
期刊名:JPR 发表时间:(2019年12月) IF:3.780 单位:Grupo de Investigación de Reumatología (GIR), Unidad de Proteó ...
- CVE-2018-1000861复现
1. 漏洞描述 Jenkins使用Stapler框架开发,其允许用户通过URL PATH来调用一次public方法.由于这个过程没有做限制,攻击者可以构造一些特殊的PATH来执行一些敏感的Java方法 ...
- rest_framework之认证与权限 token不存数据库认证
1. 认证 : 介绍: UserInfo表包含name , pwd , user_type三个字段 UserToken表包含token与user(关联UserInfo表) 当用户登录成功将随机字符串写 ...
- 《HelloGitHub》第 48 期
兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...
- 动态规划-划分数组的最大和 Split Array Largest Sum
2019-10-14 22:13:18 问题描述: 问题求解: 解法一:动态规划 这种数组划分的题目基本都可以使用dp来解决,核心的思路就是先维护低的划分,再在中间找分割点加入新的划分. public ...
- 5L-链表导论心法
链表是比数组稍微复杂一点的数据结构,也是两个非常重要与基本的数据结构.如果说数组是纪律严明排列整齐的「正规军」那么链表就是灵活多变的「地下党」. 关注公众号 MageByte,有你想要的精彩内容. 链 ...