詳解基于mpvue的小程序markdown適配解決方案
美團點評近日開源了 mpvue ,這是一個使用 Vue.js 開發(fā)小程序的前端框架。使用此框架,開發(fā)者將得到完整的 Vue.js 開發(fā)體驗,同時為 H5 和小程序提供了代碼復(fù)用的能力。如果想將 H5 項目改造為小程序,或開發(fā)小程序后希望將其轉(zhuǎn)換為 H5,mpvue 將是十分契合的一種解決方案。
mpvue 的核心目標是提高開發(fā)效率,增強開發(fā)體驗。使用該框架,開發(fā)者只需初步了解小程序開發(fā)規(guī)范、熟悉 Vue.js 基本語法即可上手??蚣芴峁┝送暾?Vue.js 開發(fā)體驗,開發(fā)者編寫 Vue.js 代碼,mpvue 將其解析轉(zhuǎn)換為小程序并確保其正確運行。此外,框架還通過 vue-cli 工具向開發(fā)者提供 quick start 示例代碼,開發(fā)者只需執(zhí)行一條簡單命令,即可獲得可運行的項目。
主要特性:
- 徹底的組件化開發(fā)能力:提高代碼
- 完整的 Vue.js 開發(fā)體驗
- 方便的 Vuex 數(shù)據(jù)管理方案:方便構(gòu)建復(fù)雜應(yīng)用
- 快捷的 webpack 構(gòu)建機制:自定義構(gòu)建策略、開發(fā)階段 hotReload
- 支持使用 npm 外部依賴
- 使用 Vue.js 命令行工具 vue-cli 快速初始化項目
- H5 代碼轉(zhuǎn)換編譯成小程序目標代碼的能力
實現(xiàn)原理:
Vue代碼
- 將小程序頁面編寫為 Vue.js 實現(xiàn)
- 以 Vue.js 開發(fā)規(guī)范實現(xiàn)父子組件關(guān)聯(lián)
小程序代碼
- 以小程序開發(fā)規(guī)范編寫視圖層模板
- 配置生命周期函數(shù),關(guān)聯(lián)數(shù)據(jù)更新調(diào)用
- 將 Vue.js 數(shù)據(jù)映射為小程序數(shù)據(jù)模型
并在此基礎(chǔ)上,附加如下機制
- Vue.js 實例與小程序 Page 實例建立關(guān)聯(lián)
- 小程序和 Vue.js 生命周期建立映射關(guān)系,能在小程序生命周期中觸發(fā) Vue.js 生命周期
- 小程序事件建立代理機制,在事件代理函數(shù)中觸發(fā)與之對應(yīng)的 Vue.js 組件事件響應(yīng)
據(jù)悉,mpvue 框架已經(jīng)在業(yè)務(wù)項目中得到實踐和驗證,目前正在美團點評內(nèi)部大范圍使用。mpvue 是基于 Vue.js 源碼進行二次開發(fā),在增加了小程序平臺的實現(xiàn)同時,保留了跟隨 Vue.js 版本升級的能力。
相信開發(fā)過小程序的人都知道小程序不支持直接插入dom,那么當我們獲取到markdown數(shù)據(jù)需要渲染的時候就有麻煩。
封裝好的 mpvue-wemark 地址
因此github上有很多成熟的小程序markdown渲染方案,但是自己之前寫mpvue的時候發(fā)現(xiàn)在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>
這樣,就實現(xiàn)了在mpvue小程序中渲染出markdown的內(nèi)容了
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue項目中接入websocket時需要ip端口動態(tài)部署問題
這篇文章主要介紹了vue項目中接入websocket時需要ip端口動態(tài)部署問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09vue子組件實時獲取父組件的數(shù)據(jù)實現(xiàn)
本文主要介紹了vue子組件實時獲取父組件的數(shù)據(jù)實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-12-12