详解基于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 使用form表单select类实现级联菜单效果
Dec 19 Javascript
JSCode all of Brower 全局屏蔽网页右键功能 具体实现
Jun 05 Javascript
jquery获得keycode的示例代码
Dec 30 Javascript
PHP开发者必须掌握的6个关键字
Apr 14 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
浅谈Sublime Text 3运行JavaScript控制台
Jun 06 Javascript
基于JS实现导航条之调用网页助手小精灵的方法
Jun 17 Javascript
javascript淘宝主图放大镜功能
Oct 20 Javascript
angular ngClick阻止冒泡使用默认行为的方法
Nov 03 Javascript
Bootstrap Table使用整理(二)
Jun 09 Javascript
记录一次完整的react hooks实践
Mar 11 Javascript
解决vue组件中click事件失效的问题
Nov 09 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作的文本留言本的例子(一)
2006/10/09 PHP
多php服务器实现多session并发运行
2006/10/09 PHP
解析dedeCMS验证码的实现代码
2013/06/07 PHP
jQuery中的RadioButton,input,CheckBox取值赋值实现代码
2014/02/18 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
PHP转换文本框内容为HTML格式的方法
2016/07/20 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
curl 出现错误的调试方法(必看)
2017/02/13 PHP
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
Vue.js 单页面多路由区域操作的实例详解
2017/07/17 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
小程序从手动埋点到自动埋点的实现方法
2019/01/24 Javascript
java遇到微信小程序 &quot;支付验证签名失败&quot; 问题解决
2019/12/22 Javascript
JavaScript 装逼指南(js另类写法)
2020/05/10 Javascript
javascript递归函数定义和用法示例分析
2020/07/22 Javascript
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
python处理图片之PIL模块简单使用方法
2015/05/11 Python
python搭建微信公众平台
2016/02/09 Python
Python切片知识解析
2016/03/06 Python
浅谈python中的变量默认是什么类型
2016/09/11 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
Python Gluon参数和模块命名操作教程
2019/12/18 Python
安装多个版本的TensorFlow的方法步骤
2020/04/21 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
离婚协议书该怎么写
2014/10/04 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
幼儿园毕业典礼家长致辞
2015/07/29 职场文书
安全生产感想
2015/08/07 职场文书
校园之声广播稿
2015/08/18 职场文书
企业版Windows 11有哪些新功能? Win11适用于企业的功能介绍
2021/11/21 数码科技