当前位置: 首页 > news >正文

初识Mpvue

一、mpvue是什么?

1、定义:mpvue是一款使用Vue.js开发微信小程序的前端框架。

2、优点:使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为H5和小程序提供了代码复用的能力。

3、知名应用:mpvue已经在美团点评多个实际业务项目中得到了验证

4、使用之前知识储备:

  • 初步了解小程序开发规范 developers.weixin.qq.com/miniprogram…
  • 熟悉Vue.js基本语法 cn.vuejs.org/

二、vue和小程序对比相同点,为何可以相互转化?

相同点:Vue.js 和小程序都是典型的**逻辑视图层框架**,逻辑层和视图层之间的工作方式为:

  • 数据变更驱动视图更新
  • 视图交互触发事件
  • 事件响应函数修改数据再次触发视图更新

三、相互转化原理

鉴于 Vue.js 和小程序一致的工作原理,

  • 所以将小程序的功能托管给Vue.js,在正确的时机将数据变更同步到小程序,从而达到开发小程序的目的。

  • 这样,我们可以将精力聚焦在 Vue.js上,参照 Vue.js 编写与之对应的小程序代码,小程序负责视图层展示(项目中用到的组件都可以使用小程序自带组件)。

  • 所有业务逻辑收敛到 Vue.js 中,Vue.js 数据变更后同步到小程序

四、第一个mpvue项目

mpvue 为提高效率而生,本身提供了自动生成小程序代码的能力,小程序代码根据 Vue.js 代码构建得到,并不需要同时开发两套代码。

构建最基础的mpvue项目

# 安装 vue-cli
$ npm install vue-cli
# 根据模板项目创建本地项目,目前为内网地址
$ vue init mpvue/mpvue-quickstart my- project
# 安装依赖和启动自动构建
$ cd my-project
$ npm install
$ npm run dev
复制代码

使用小程序开发者工具载入 dist 目录即可启动本地调试和预览。

项目转换注意事项框架的目标是将小程序和 H5 的开发方式通过 Vue.js 建立关联,达到最大程度的代码复用。

但由于平台差异的客观存在(主要集中在实现机制、底层Api 能力差异),我们无法做到代码 100% 复用

难点Vue.js 和小程序的数据彼此隔离,各自有不同的更新机制

五、完整MpVue项目 文档目录结构

目录结构对比

NameVUE文档目录结构Mpvue文档目录结构
图片对比
页面跳转vue-router 路由wx.navigator
数据存储VueXVueX
请求数据axioswx.request
组件使用mint-ui或其他小程序自带组件

六、Mpvue 项目实践 踩坑记录

juejin.im/post/5ba5fe…

相关文章:

  • mongodb基础(1)
  • 不学无数——个人搭建的博客已经好了,欢迎访问
  • (五)IO流之ByteArrayInput/OutputStream
  • Java 之 Map 的键,值多重排序问题解决方案
  • 西安高校加紧人工智能学科布局
  • CentOS搭建samba文件共享传输服务
  • 容器服务kubernetes弹性伸缩高级用法
  • TERMIOS详解【转】
  • 求连续数字的和------------------------------用while的算法思想
  • Zabbix3.0基础教程之二:item、trigger、action、graph配置
  • BZOJ2216: [Poi2011]Lightning Conductor(DP 决策单调性)
  • 递增链表的插入
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • Linux 环境变量的配置解决(-bash: jps: command not found)问题
  • Tomcat学习—Tomcat的简介和目录以及配置文件介绍(Windows环境)
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • Android 控件背景颜色处理
  • CentOS 7 防火墙操作
  • ECMAScript6(0):ES6简明参考手册
  • ES6之路之模块详解
  • Hibernate最全面试题
  • iOS小技巧之UIImagePickerController实现头像选择
  • Java基本数据类型之Number
  • laravel with 查询列表限制条数
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • PermissionScope Swift4 兼容问题
  • React 快速上手 - 07 前端路由 react-router
  • SpiderData 2019年2月16日 DApp数据排行榜
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 编写高质量JavaScript代码之并发
  • 测试开发系类之接口自动化测试
  • 大型网站性能监测、分析与优化常见问题QA
  • 力扣(LeetCode)965
  • 如何选择开源的机器学习框架?
  • 异步
  • 责任链模式的两种实现
  • NLPIR智能语义技术让大数据挖掘更简单
  • 如何用纯 CSS 创作一个货车 loader
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (简单) HDU 2612 Find a way,BFS。
  • (一)Java算法:二分查找
  • (一)Spring Cloud 直击微服务作用、架构应用、hystrix降级
  • (转)fock函数详解
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET Standard 的管理策略
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...