详解基于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 isArray()函数判断对象类型的种种方法
Oct 11 Javascript
jquery select动态加载选择(兼容各种浏览器)
Feb 01 Javascript
AspNet中使用JQuery boxy插件的确认框
May 20 Javascript
angularjs学习笔记之简单介绍
Sep 26 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 Javascript
JavaScrip常见的一些算法总结
Dec 28 Javascript
jquery UI Datepicker时间控件的使用及问题解决
Apr 28 Javascript
微信小程序之picker日期和时间选择器
Feb 09 Javascript
react-native封装插件swiper的使用方法
Mar 20 Javascript
VUE 实现复制内容到剪贴板的两种方法
Apr 24 Javascript
webpack4手动搭建Vue开发环境实现todoList项目的方法
May 16 Javascript
vue项目中自定义video视频控制条的实现代码
Apr 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
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
用PHP的ob_start() 控制您的浏览器cache
2009/08/03 PHP
PHP删除数组中特定元素的两种方法
2013/07/02 PHP
ThinkPHP框架搭建及常见问题(XAMPP安装失败、Apache/MySQL启动失败)
2016/04/15 PHP
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
javascript当中的代码嗅探扩展原生对象和原型(prototype)
2013/01/11 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
BootStrap Progressbar 实现大文件上传的进度条的实例代码
2016/06/27 Javascript
微信小程序 生命周期函数详解
2017/05/24 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
2019/09/15 Javascript
countup.js实现数字动态叠加效果
2019/10/17 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
Python中的urllib模块使用详解
2015/07/07 Python
python动态网页批量爬取
2016/02/14 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
2018/04/27 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
python cs架构实现简单文件传输
2020/03/20 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
2019/08/17 Python
python如何删除列为空的行
2020/07/17 Python
详解使用Python写一个向数据库填充数据的小工具(推荐)
2020/09/11 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
自荐书模板
2013/12/15 职场文书
委托证明的格式
2014/01/10 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
县政府办公室领导班子个人对照检查材料
2014/09/16 职场文书
2014年居委会工作总结
2014/12/09 职场文书
明确岗位职责
2015/02/14 职场文书
雨中的树观后感
2015/06/03 职场文书
火烧圆明园的观后感
2015/06/03 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书