详解基于mpvue的小程序markdown适配解决方案


Posted in Javascript onMay 08, 2018

美团点评近日开源了 mpvue ,这是一个使用 Vue.js 开发小程序的前端框架。使用此框架,开发者将得到完整的 Vue.js 开发体验,同时为 H5 和小程序提供了代码复用的能力。如果想将 H5 项目改造为小程序,或开发小程序后希望将其转换为 H5,mpvue 将是十分契合的一种解决方案。

mpvue 的核心目标是提高开发效率,增强开发体验。使用该框架,开发者只需初步了解小程序开发规范、熟悉 Vue.js 基本语法即可上手。框架提供了完整的 Vue.js 开发体验,开发者编写 Vue.js 代码,mpvue 将其解析转换为小程序并确保其正确运行。此外,框架还通过 vue-cli 工具向开发者提供 quick start 示例代码,开发者只需执行一条简单命令,即可获得可运行的项目。

主要特性:

  1. 彻底的组件化开发能力:提高代码
  2. 完整的 Vue.js 开发体验
  3. 方便的 Vuex 数据管理方案:方便构建复杂应用
  4. 快捷的 webpack 构建机制:自定义构建策略、开发阶段 hotReload
  5. 支持使用 npm 外部依赖
  6. 使用 Vue.js 命令行工具 vue-cli 快速初始化项目
  7. H5 代码转换编译成小程序目标代码的能力

实现原理:

Vue代码

详解基于mpvue的小程序markdown适配解决方案

  1. 将小程序页面编写为 Vue.js 实现
  2. 以 Vue.js 开发规范实现父子组件关联

小程序代码

  1. 以小程序开发规范编写视图层模板
  2. 配置生命周期函数,关联数据更新调用
  3. 将 Vue.js 数据映射为小程序数据模型

并在此基础上,附加如下机制

  1. Vue.js 实例与小程序 Page 实例建立关联
  2. 小程序和 Vue.js 生命周期建立映射关系,能在小程序生命周期中触发 Vue.js 生命周期
  3. 小程序事件建立代理机制,在事件代理函数中触发与之对应的 Vue.js 组件事件响应

据悉,mpvue 框架已经在业务项目中得到实践和验证,目前正在美团点评内部大范围使用。mpvue 是基于 Vue.js 源码进行二次开发,在增加了小程序平台的实现同时,保留了跟随 Vue.js 版本升级的能力。

相信开发过小程序的人都知道小程序不支持直接插入dom,那么当我们获取到markdown数据需要渲染的时候就有麻烦。

封装好的 mpvue-wemark 地址

因此github上有很多成熟的小程序markdown渲染方案,但是自己之前写mpvue的时候发现在mpvue上直接用这些库是不行的,因为wxml和vue的写法上是不兼容的,因此就需要对mpvue进行适配。这里我选择wemark这个库。

主要做了几步 :1、把remarkable.js重新打包成ES版本,mpvue默认脚手架是wepack2不支持es commonjs混用 2、把wxml和小程序js层不兼容vue的写法兼容了下。

demo如下

<template>
 <div>
  <wemark :mdData='mdData'/>
 </div>
</template>

<script>
import wemark from "mpvue-wemark";
export default {
 data() {
  return {
   mdData: ''
  };
 },
 components: {
  wemark
 },
 mounted() {
   this.mdData = "## hello, world";

 }
};
</script>

这样,就实现了在mpvue小程序中渲染出markdown的内容了

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
关于textarea提交的内容无法换行的解决办法
Apr 09 Javascript
JQuery入门基础小实例(1)
Sep 17 Javascript
JS获取及验证开始结束日期的方法
Aug 20 Javascript
jquery 标签 隔若干行加空白或者加虚线的方法
Dec 07 Javascript
js canvas实现放大镜查看图片功能
Jun 08 Javascript
Vue中的数据监听和数据交互案例解析
Jul 12 Javascript
BootStrap的双日历时间控件使用
Jul 25 Javascript
Vuejs实现购物车功能
Nov 05 Javascript
详解JS数值Number类型
Feb 07 Javascript
Vue Promise的axios请求封装详解
Aug 13 Javascript
关于微信公众号开发无法支付的问题解决
Dec 28 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
Aug 12 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
May 08 #Javascript
浅谈React 服务器端渲染的使用
May 08 #Javascript
vue.js做一个简单的编辑菜谱功能
May 08 #Javascript
webstorm和.vue中es6语法报错的解决方法
May 08 #Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
May 08 #Javascript
webstorm添加*.vue文件支持
May 08 #Javascript
浅谈vue项目如何打包扔向服务器
May 08 #Javascript
You might like
资料注册后发信小技巧
2006/10/09 PHP
windows xp下安装pear
2006/12/02 PHP
PHP字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
2016/08/01 Javascript
Angular2库初探
2017/03/01 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
react native与webview通信的示例代码
2017/09/25 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
vue下拉菜单组件(含搜索)的实现代码
2018/11/25 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[51:20]完美世界DOTA2联赛PWL S2 Magma vs PXG 第一场 11.28
2020/12/01 DOTA
Python读取环境变量的方法和自定义类分享
2014/11/22 Python
Python函数参数类型*、**的区别
2015/04/11 Python
python集合是否可变总结
2019/06/20 Python
Python3安装psycopy2以及遇到问题解决方法
2019/07/03 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
菲律宾旅游网站:Expedia菲律宾
2017/10/11 全球购物
标准毕业生自荐信范文
2013/11/04 职场文书
应届大学生求职的自我评价
2013/11/17 职场文书
旷课检讨书2000字
2014/01/14 职场文书
北京大学自荐信范文
2014/01/28 职场文书
助学贷款贫困证明
2014/09/23 职场文书
2014年政协工作总结
2014/12/09 职场文书
原型和原型链 prototype和proto的区别详情
2021/11/02 Javascript