Wepy框架

它是一款类Vue框架,在代码风格上借鉴了Vue,本身和Vue没有任何关系。

mpVue框架

它是从整个Vue的核心代码上经过二次开发而形成的一个框架,相当于是给Vue本身赋能,增加了开发微信小程序的能力。

三者的区别图:

使用mpVue时需要注意的点:

1. 在模板中,动态插入HTML的v-html指令不可用

这条很好理解,小程序的界面并不是基于浏览器的BOM/DOM的,所以不能动态的在界面模板里直接插入HTML片段来显示。

题外话,如果有在小程序里插入html片段的需求怎么办?可以用组件或者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属性上

最好的方案: 计算属性

<template>
<div :class="classStr"></div>
</template> <script>
export default {
data() {
return {
classObject: {
active: true,
'text-danger': false
}
}
},
computed: {
classStr() {
let arr = []
for (let p in this.classObject) {
if (this.classObject[p]) {
arr.push(p)
}
}
return arr.join(' ')
}
}
}
</script>

5. 在模板中,嵌套使用v-for时,必须指定索引index

通常,我们在Vue模板中嵌套循环渲染数组的时候,一般是这个样子的:

<template>
<ul v-for="category in categories">
<li v-for="product in category.products">{{product.name}}</li>
</ul>
</template>

但在mpvue中使用这种嵌套结构的v-for时,则必须每层的v-for上都给出索引,且索引需取不同名字:

<template>
<ul v-for="(category, index) in categories">
<li v-for="(product, productIndex) in category.products">{{product.name}}</li>
</ul>
</template>

6. 事件处理中的注意点

在mpvue中,一般可以使用Web的DOM事件名来绑定事件,mpvue会将Web事件名映射成对应的小程序事件名,对应列表如下:

// 左侧为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事件。

然后,像keydown、keypress之类的键盘事件也没有了,因为小程序没有键盘,所以不需要这些事件。

7. 对于表单,请直接使用小程序原生的表单组件

其他注意事项

另外,在Vue开发Web应用的时候,通常使用vue-router来进行页面路由。但是在mpvue小程序开发中,不能用这种方式,请使用标签和小程序原生API wx.navigateTo等来做路由功能。

还有就是请求后端数据,我们通常在Web开发中使用axios等ajax库来实现,但是在小程序开发中也是不能用的,也请使用小程序的原生API wx.request等来进行。

微信小程序的UI组件库

  • WeUI
  • iView
  • ZanUI
  • MinUI
  • Wux
  • ColorUI

Wepy框架和mpVue框架的比较及使用mpVue框架需要注意的点的更多相关文章

  1. iOS Foundation 框架概述文档:常量、数据类型、框架、函数、公布声明

    iOS Foundation 框架概述文档:常量.数据类型.框架.函数.公布声明 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业 ...

  2. 【SSH进阶之路】一步步重构容器实现Spring框架——彻底封装,实现简单灵活的Spring框架(十一)

    文件夹      [SSH进阶之路]一步步重构容器实现Spring框架--从一个简单的容器開始(八)      [SSH进阶之路]一步步重构容器实现Spring框架--解决容器对组件的"侵入 ...

  3. 远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo、SpringClound对比

    远程服务调用RPC框架介绍,微服务架构介绍和RPC框架对比,dubbo.SpringClound对比 远程服务调用RPC框架介绍,RPC简单的来说就是像调用本地服务一样调用远程服务. 分布式RPC需要 ...

  4. 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序

    如何在Visual Studio 2017中使用C# 7+语法   前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...

  5. 【JavaScript框架封装】实现一个类似于JQuery的基础框架、事件框架、CSS框架、属性框架、内容框架、动画框架整体架构的搭建

    /* * @Author: 我爱科技论坛 * @Time: 20180715 * @Desc: 实现一个类似于JQuery功能的框架 * V 1.0: 实现了基础框架.事件框架.CSS框架.属性框架. ...

  6. Django,Flask,Tornado三大框架对比,Python几种主流框架,13个Python web框架比较,2018年Python web五大主流框架

    Django 与 Tornado 各自的优缺点Django优点: 大和全(重量级框架)自带orm,template,view 需要的功能也可以去找第三方的app注重高效开发全自动化的管理后台(只需要使 ...

  7. Spring框架是一种非侵入式的轻量级框架

    摘自<Spring框架技术> Spring框架是一种非侵入式的轻量级框架 1.非侵入式的技术体现 允许在应用系统中自由选择和组装Spring框架的各个功能模块,并且不强制要求应用系统的类必 ...

  8. go server框架学习之路 - 写一个自己的go框架

    go server框架学习之路 - 写一个自己的go框架 用简单的代码实现一个go框架 代码地址: https://github.com/cw731/gcw 1 创建一个简单的框架 代码 packag ...

  9. 基于C/S架构的3D对战网络游戏C++框架 _06搭建C/S架构的基本通信框架(尚未写完会重新编辑后再发出)

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  10. Silverlight开源框架SL提供便捷的二次开发银光框架

    Silverlight开发框架SilverFrame欢迎咨询 基于Silverlight4.0开发,兼容Silverlight 5.0,SQLServer2005数据库.WCF: 本框架有清爽的前端界 ...

随机推荐

  1. python第四节【函数】

    函数 1. 函数 def greet_user(): """显示简单的问候语""" print("Hello") gre ...

  2. NPC脚本界面自定义美化参数说明

    觉得NPC对话界面太单调了 可以自己定义: 在[@main]下面加上 #ACT OPENMERCHANTBIGDLG  参数(WIL文件序号 图片序号 是否可以移动(0,1) 显示位置(0=左上角,1 ...

  3. No module named '_ctypes'

    3.7版本需要一个新的包libffi-devel,安装此包之后再次进行编译安装即可. #yum install libffi-devel -y #make install 若在安装前移除了/usr/b ...

  4. Java笔记 02-LinkedList

    介绍:List 接口的链接列表实现.实现所有可选的列表操作,并且允许所有元素(包括 null).除了实现 List 接口外,LinkedList 类还为在列表的开头及结尾 get.remove 和 i ...

  5. shell 脚本基础

    弱类型语言 bash 变量类型 本地变量 环境变量 局部变量 位置参数变量 特殊变量 运行 无执行权限 bash hello.sh 有执行权限 检查语法 bash -n user.sh 跟踪每一行的执 ...

  6. 【HV】HVIL-High Voltage Interlock Loop

    HVIL高压互锁功能 1.HVIL作用 High Voltage Interlock Loop 高压互锁,是在"ISO6469-3:电动汽车安全技术规范第三部分:人员电气伤害防护" ...

  7. [WC2018]通道(乱搞,迭代)

    [洛谷题面]https://www.luogu.org/problemnew/show/P4221 这个题以及[CTSC2018 暴力写挂]都有类似的乱搞做法能通过考场数据. 具体搞法就是随一个起点, ...

  8. 洛谷P1009 阶乘之和 题解

    想看原题请点击这里:传送门 看一下原题: 题目描述 用高精度计算出S=!+!+!+…+n! (n≤) 其中“!”表示阶乘,例如:!=****××××. 输入格式 一个正整数N. 输出格式 一个正整数S ...

  9. Android Studio中 安卓模拟器 联网

    方案一:之前做测试的时候发现虚拟机无法联网(浏览器打开 www.baidu.com, 显示 403 forbidden): 解决方案:关闭已经打开的虚拟机,进入到 SDK 安装目录下,按住 shift ...

  10. VS release模式下进行调试设置

    工程项目上右键 打开 属性界面 1.c++ ---  常规 ---- 调试信息格式 选  程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi) 2.c/c++ ---- 优化 ---- ...