详解基于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 相关文章推荐
如何快速的呈现我们的网页的技巧整理
Jul 01 Javascript
一个JQuery写的点击上下滚动的小例子
Aug 27 Javascript
JS保存、读取、换行、转Json报错处理方法
Jun 14 Javascript
js完美的div拖拽实例代码
Jan 22 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
Jun 18 Javascript
10个很棒的jQuery代码片段
Sep 24 Javascript
浅谈jQuery中hide和fadeOut的区别 show和fadeIn的区别
Aug 18 Javascript
jQuery实现复选框的全选和反选
Feb 02 Javascript
vue2.0之多页面的开发的示例
Jan 30 Javascript
Servlet3.0与纯javascript通过Ajax交互的实例详解
Mar 18 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
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
PHP 采集程序原理分析篇
2010/03/05 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP二维数组矩形转置实例
2016/07/20 PHP
php 7新特性之类型申明详解
2017/06/06 PHP
用JS实现的一个include函数
2007/07/21 Javascript
javascript 的Document属性和方法集合
2010/01/25 Javascript
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
javascript正则表达式中的replace方法详解
2015/04/20 Javascript
Bootstrap中的表单验证插件bootstrapValidator使用方法整理(推荐)
2016/06/21 Javascript
AngularJs ng-route路由详解及实例代码
2016/09/14 Javascript
JavaScript动态数量的文件上传控件
2016/11/18 Javascript
BootStrap 图片样式、辅助类样式和CSS组件的实例详解
2017/01/20 Javascript
es6的数字处理的方法(5个)
2017/03/16 Javascript
详解webpack编译多页面vue项目的配置问题
2017/12/11 Javascript
JS运动特效之链式运动分析
2018/01/24 Javascript
vueJs实现DOM加载完之后自动下拉到底部的实例代码
2018/08/31 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
vue学习笔记之Vue中css动画原理简单示例
2020/02/29 Javascript
[02:36]DOTA2英雄基础教程 斯拉克
2013/11/29 DOTA
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
利用TensorFlow训练简单的二分类神经网络模型的方法
2018/03/05 Python
python实现日常记账本小程序
2018/03/10 Python
NumPy 数学函数及代数运算的实现代码
2018/07/18 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
Django框架 信号调度原理解析
2019/09/04 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
用React加CSS3实现微信拆红包动画效果
2017/03/13 HTML / CSS
医学院毕业生自荐信
2013/11/08 职场文书
原料仓管员岗位职责
2014/04/12 职场文书
地球一小时倡议书
2014/04/15 职场文书
2014年销售部工作总结
2014/12/01 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
校运会班级霸气口号
2015/12/24 职场文书
化工生产实习心得体会
2016/01/22 职场文书