详解基于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 相关文章推荐
javascript 面向对象编程基础 多态
Aug 21 Javascript
js获取dom的高度和宽度(可见区域及部分等等)
Jun 13 Javascript
js获取视频时长代码
Apr 10 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
Mar 04 Javascript
AngularJS equal比较对象实例详解
Sep 14 Javascript
JavaScript实现网页头部进度条刷新
Apr 16 Javascript
Angular2使用jQuery的方法教程
May 28 jQuery
详解在Vue中如何使用axios跨域访问数据
Jul 07 Javascript
node通过express搭建自己的服务器
Sep 30 Javascript
JavaScript中EventLoop介绍
Jan 22 Javascript
详解vue填坑之解决部分浏览器不支持pushState方法
Jul 12 Javascript
Angular8基础应用之表单及其验证
Aug 11 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
IIS php环境配置PHP5 MySQL5 ZendOptimizer phpmyadmin安装与配置
2008/11/18 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
深入解析PHP中的(伪)多线程与多进程
2013/07/01 PHP
PHP生成唯一订单号的方法汇总
2015/04/16 PHP
实现PHP搜索加分页
2016/10/12 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
javascipt基础内容--需要注意的细节
2013/04/10 Javascript
跟我学习javascript的Date对象
2015/11/19 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
JavaScript为事件句柄绑定监听函数实例详解
2015/12/15 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
JS加密插件CryptoJS实现的Base64加密示例
2020/08/16 Javascript
vue项目每30秒刷新1次接口的实现方法
2018/12/04 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
微信小程序实现选择地址省市区三级联动
2020/06/21 Javascript
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
2020/11/09 jQuery
Python 实现简单的电话本功能
2015/08/09 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
python字符串查找函数的用法详解
2019/07/08 Python
这可能是最好玩的python GUI入门实例(推荐)
2019/07/19 Python
Python利用逻辑回归分类实现模板
2020/02/15 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
Django执行源生mysql语句实现过程解析
2020/11/12 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
工程造价专业大学生自荐信
2013/10/01 职场文书
园林系毕业生求职信
2014/06/23 职场文书
政协会议宣传标语
2014/10/09 职场文书
工程部部长岗位职责
2015/02/12 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
学习委员竞选稿
2015/11/20 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
能让Python提速超40倍的神器Cython详解
2021/06/24 Python
win11如何查看端口是否被占用? Win11查看端口是否占用的技巧
2022/04/05 数码科技