详解基于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 相关文章推荐
XmlUtils JS操作XML工具类
Oct 01 Javascript
JQuery 解析多维的Json数据格式
Nov 02 Javascript
DIV菜单层实现代码
Nov 19 Javascript
javascript中数组的多种定义方法和常用函数简介
May 09 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
Aug 21 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
Jan 31 Javascript
Bootstrap表单布局
Jul 19 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
Sep 09 Javascript
使用jquery datatable和bootsrap创建表格实例代码
Mar 17 Javascript
js实现图片轮播效果学习笔记
Jul 26 Javascript
jQuery实现的模仿雨滴下落动画效果
Dec 11 jQuery
js实现限定范围拖拽的示例
Oct 26 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
php 图像函数大举例(非原创)
2009/06/20 PHP
php Sql Server连接失败问题及解决办法
2009/08/07 PHP
php mysql 判断update之后是否更新了的方法
2012/01/10 PHP
PHP数据库操作之基于Mysqli的数据库操作类库
2014/04/19 PHP
PHP动态页生成静态页的3种常用方法
2014/11/13 PHP
PHP加密技术的简单实现
2016/09/04 PHP
php实现姓名根据首字母排序的类与方法(实例代码)
2018/05/16 PHP
漂亮的widgets,支持换肤和后期开发新皮肤
2007/04/23 Javascript
JavaScript Ajax Json实现上下级下拉框联动效果实例代码
2013/11/23 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
JQuery中DOM事件冒泡实例分析
2015/06/13 Javascript
JS使用正则表达式除去字符串中重复字符的方法
2015/11/05 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
让你5分钟掌握9个JavaScript小技巧
2018/06/09 Javascript
JavaScript大数相加相乘的实现方法实例
2020/10/18 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
Python函数式编程指南(三):迭代器详解
2015/06/24 Python
Python实现的选择排序算法原理与用法实例分析
2017/11/22 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
python3实现微型的web服务器
2019/09/03 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
美国从事品牌鞋类零售的连锁店:Famous Footwear
2016/08/25 全球购物
北美大型运动类产品商城:Champs Sports
2017/01/12 全球购物
临床医学专业求职信
2014/08/08 职场文书
四风剖析查摆对照检查材料思想汇报
2014/09/24 职场文书
天那边观后感
2015/06/09 职场文书
仙境之桥观后感
2015/06/16 职场文书
演讲比赛通讯稿
2015/07/18 职场文书
高中语文教材(文学文化常识大全一)
2019/08/13 职场文书
python中subplot大小的设置步骤
2021/06/28 Python