详解基于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 相关文章推荐
JS获取下拉列表所选中的TEXT和Value的实现代码
Jan 11 Javascript
JavaScript常用小技巧小结
Dec 29 Javascript
基于JQuery实现仿网易邮箱全屏动感滚动插件fullPage
Sep 20 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
May 03 Javascript
javascript实现非常简单的小数取整功能示例
Jun 13 Javascript
jQuery AJAX 方法success()后台传来的4种数据详解
Aug 08 jQuery
Vue.js组件间通信方式总结【推荐】
Nov 23 Javascript
微信小程序时间控件picker view使用详解
Dec 28 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
Mar 28 Javascript
JS大坑之19位数的Number型精度丢失问题详解
Apr 22 Javascript
vue项目中mock.js的使用及基本用法
May 22 Javascript
前端开发之便利店收银系统代码
Dec 27 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模板类代码
2008/09/07 PHP
php使用json_encode对变量json编码
2014/04/07 PHP
Yii1.1框架实现PHP极光推送消息通知功能
2018/09/06 PHP
ThinkPHP5.0框架使用build 自动生成模块操作示例
2019/04/11 PHP
Mootools 1.2教程 类(一)
2009/09/15 Javascript
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
javascript 获取模态窗口的滚动位置代码
2013/08/06 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
Vue.js 2.0 和 React、Augular等其他前端框架大比拼
2016/10/08 Javascript
基于JavaScript实现弹幕特效
2020/08/27 Javascript
JavaScript内存泄漏的处理方式
2017/11/20 Javascript
webpack 单独打包指定JS文件的方法
2018/02/22 Javascript
npm 下载指定版本的组件方法
2018/05/17 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
JavaScript表格隔行变色和Tab标签页特效示例【附jQuery版】
2019/07/11 jQuery
jquery 插件重新绑定的处理方法分析
2019/11/23 jQuery
从零开始在vue-cli4配置自适应vw布局的实现
2020/06/08 Javascript
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
详解Python中的变量及其命名和打印
2016/03/11 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
python实现多人聊天室
2020/03/31 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
JavaScript+Canvas实现自定义画板的示例代码
2019/05/13 HTML / CSS
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
创建无烟单位实施方案
2014/03/29 职场文书
舞蹈教育学专业自荐信
2014/06/15 职场文书
高中学生会竞选演讲稿
2014/08/25 职场文书
考试作弊检讨
2015/01/27 职场文书
求职自我评价怎么写
2015/03/09 职场文书
导游词之天津盘山
2019/11/01 职场文书
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技