詳解基于mpvue的小程序markdown適配解決方案
美團(tuán)點(diǎn)評(píng)近日開源了 mpvue ,這是一個(gè)使用 Vue.js 開發(fā)小程序的前端框架。使用此框架,開發(fā)者將得到完整的 Vue.js 開發(fā)體驗(yàn),同時(shí)為 H5 和小程序提供了代碼復(fù)用的能力。如果想將 H5 項(xiàng)目改造為小程序,或開發(fā)小程序后希望將其轉(zhuǎn)換為 H5,mpvue 將是十分契合的一種解決方案。
mpvue 的核心目標(biāo)是提高開發(fā)效率,增強(qiáng)開發(fā)體驗(yàn)。使用該框架,開發(fā)者只需初步了解小程序開發(fā)規(guī)范、熟悉 Vue.js 基本語法即可上手??蚣芴峁┝送暾?Vue.js 開發(fā)體驗(yàn),開發(fā)者編寫 Vue.js 代碼,mpvue 將其解析轉(zhuǎn)換為小程序并確保其正確運(yùn)行。此外,框架還通過 vue-cli 工具向開發(fā)者提供 quick start 示例代碼,開發(fā)者只需執(zhí)行一條簡(jiǎn)單命令,即可獲得可運(yùn)行的項(xiàng)目。
主要特性:
- 徹底的組件化開發(fā)能力:提高代碼
- 完整的 Vue.js 開發(fā)體驗(yàn)
- 方便的 Vuex 數(shù)據(jù)管理方案:方便構(gòu)建復(fù)雜應(yīng)用
- 快捷的 webpack 構(gòu)建機(jī)制:自定義構(gòu)建策略、開發(fā)階段 hotReload
- 支持使用 npm 外部依賴
- 使用 Vue.js 命令行工具 vue-cli 快速初始化項(xiàng)目
- H5 代碼轉(zhuǎn)換編譯成小程序目標(biāo)代碼的能力
實(shí)現(xiàn)原理:
Vue代碼

- 將小程序頁面編寫為 Vue.js 實(shí)現(xiàn)
- 以 Vue.js 開發(fā)規(guī)范實(shí)現(xiàn)父子組件關(guān)聯(lián)
小程序代碼
- 以小程序開發(fā)規(guī)范編寫視圖層模板
- 配置生命周期函數(shù),關(guān)聯(lián)數(shù)據(jù)更新調(diào)用
- 將 Vue.js 數(shù)據(jù)映射為小程序數(shù)據(jù)模型
并在此基礎(chǔ)上,附加如下機(jī)制
- Vue.js 實(shí)例與小程序 Page 實(shí)例建立關(guān)聯(lián)
- 小程序和 Vue.js 生命周期建立映射關(guān)系,能在小程序生命周期中觸發(fā) Vue.js 生命周期
- 小程序事件建立代理機(jī)制,在事件代理函數(shù)中觸發(fā)與之對(duì)應(yīng)的 Vue.js 組件事件響應(yīng)
據(jù)悉,mpvue 框架已經(jīng)在業(yè)務(wù)項(xiàng)目中得到實(shí)踐和驗(yàn)證,目前正在美團(tuán)點(diǎn)評(píng)內(nèi)部大范圍使用。mpvue 是基于 Vue.js 源碼進(jìn)行二次開發(fā),在增加了小程序平臺(tái)的實(shí)現(xiàn)同時(shí),保留了跟隨 Vue.js 版本升級(jí)的能力。
相信開發(fā)過小程序的人都知道小程序不支持直接插入dom,那么當(dāng)我們獲取到markdown數(shù)據(jù)需要渲染的時(shí)候就有麻煩。
封裝好的 mpvue-wemark 地址
因此github上有很多成熟的小程序markdown渲染方案,但是自己之前寫mpvue的時(shí)候發(fā)現(xiàn)在mpvue上直接用這些庫是不行的,因?yàn)閣xml和vue的寫法上是不兼容的,因此就需要對(duì)mpvue進(jìn)行適配。這里我選擇wemark這個(gè)庫。
主要做了幾步 :1、把remarkable.js重新打包成ES版本,mpvue默認(rèn)腳手架是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>
這樣,就實(shí)現(xiàn)了在mpvue小程序中渲染出markdown的內(nèi)容了
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Vue單頁面應(yīng)用中實(shí)現(xiàn)Markdown渲染
- vue導(dǎo)入.md文件的步驟(markdown轉(zhuǎn)HTML)
- vue-cli3項(xiàng)目展示本地Markdown文件的方法
- 利用Vue實(shí)現(xiàn)一個(gè)markdown編輯器實(shí)例代碼
- vue中利用simplemde實(shí)現(xiàn)markdown編輯器(增加圖片上傳功能)
- 實(shí)現(xiàn)Vue的markdown文檔可以在線運(yùn)行的方法示例
- Vuejs中使用markdown服務(wù)器端渲染的示例
- 如何在在Vue3中使用markdown 編輯器組件
相關(guān)文章
Vue中調(diào)用組件使用kebab-case短橫線命名法和使用大駝峰的區(qū)別詳解
這篇文章主要介紹了Vue中調(diào)用組件使用kebab-case(短橫線)命名法和使用大駝峰的區(qū)別,通過實(shí)例可以看出如果是在html中使用組件,那么就不能用大駝峰式寫法,如果是在.vue?文件中就可以,需要的朋友可以參考下2023-10-10
vue中設(shè)置echarts寬度自適應(yīng)的代碼步驟
這篇文章主要介紹了vue中設(shè)置echarts寬度自適應(yīng)的問題及解決方案,常常需要做到echarts圖表的自適應(yīng),一般是根據(jù)頁面的寬度做對(duì)應(yīng)的適應(yīng),本文記錄一下設(shè)置echarts圖表的自適應(yīng)的步驟,需要的朋友可以參考下2022-09-09
vue elementUI table表格數(shù)據(jù) 滾動(dòng)懶加載的實(shí)現(xiàn)方法
這篇文章主要介紹了vue elementUI table表格數(shù)據(jù)滾動(dòng)懶加載的實(shí)現(xiàn)方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04
Vue首屏加載過慢出現(xiàn)白屏的6種優(yōu)化方案匯總
vue項(xiàng)目打包上線后,首次打開會(huì)發(fā)現(xiàn)加載很慢,出現(xiàn)白屏的問題,下面這篇文章主要給大家介紹了關(guān)于Vue首屏加載過慢出現(xiàn)白屏的6種優(yōu)化方案,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-02-02
vue項(xiàng)目中使用AvueJs的詳細(xì)教程
Avue.js是基于現(xiàn)有的element-ui庫進(jìn)行的二次封裝,簡(jiǎn)化一些繁瑣的操作,核心理念為數(shù)據(jù)驅(qū)動(dòng)視圖,主要的組件庫針對(duì)table表格和form表單場(chǎng)景,這篇文章給大家介紹了vue項(xiàng)目中使用AvueJs的相關(guān)知識(shí),感興趣的朋友跟隨小編一起看看吧2022-10-10
vue項(xiàng)目動(dòng)態(tài)設(shè)置iframe元素高度的操作代碼
在現(xiàn)代Web開發(fā)中,iframe元素常用于嵌入外部內(nèi)容到當(dāng)前網(wǎng)頁中,比如在線文檔、視頻播放器或是廣告,Vue框架提供了強(qiáng)大的工具來解決這個(gè)問題,通過動(dòng)態(tài)設(shè)置iframe元素的高度,我們可以確保頁面布局既美觀又高效,本文給大家介紹了vue項(xiàng)目動(dòng)態(tài)設(shè)置iframe元素高度的操作2024-10-10

