mpvue 單文件頁面配置詳解
前言
mpvue 的出現(xiàn)把 vue 的開發(fā)體驗帶到了小程序這個平臺中,但其目錄結(jié)構與傳統(tǒng)的 vue 項目卻并不完全一致,一個典型的頁面包含以下三個文件:
index.vue // 頁面文件 main.js // 打包入口,完成 vue 的實例化 main.json // 小程序特有的頁面配置,早期寫在 main.js 文件中
其中,每個頁面的 main.js 文件基本都是一致的,可通過mpvue-entry 來自動生成(weex 也有類似的處理),而 main.json 我個人認為直接在 vue 文件中配置更為合適,于是開發(fā)了mpvue-config-loader 來加以實現(xiàn)
本文將介紹如何在 mpvue 官方模板的基礎上,通過配置 mpvue-config-loader 來實現(xiàn)在 vue 文件內(nèi)書寫小程序的頁面配置
步驟
初始化項目
vue init mpvue/mpvue-quickstart my-project
安裝依賴
npm i mpvue-config-loader -D
or
yarn add mpvue-config-loader -D
修改打包配置
build/webpack.base.conf.js
module.exports = { module: { rules: [ { test: /\.vue$/, loader: 'mpvue-loader', options: vueLoaderConfig }, + { + test: /\.vue$/, + loader: 'mpvue-config-loader', + exclude: [resolve('src/components')], + options: { + entry: './main.js' + } + } ... ] } ... plugins: [ new MpvuePlugin(), - new CopyWebpackPlugin([{ - from: '**/*.json', - to: '' - }], { - context: 'src/' - }), ... ] }
修改頁面配置
src/App.vue - 復制 app.json 中的內(nèi)容,并修改格式以符合 eslint 規(guī)范
<script> export default { + config: { + pages: [ + 'pages/index/main', + 'pages/logs/main', + 'pages/counter/main' + ], + window: { + backgroundTextStyle: 'light', + navigationBarBackgroundColor: '#fff', + navigationBarTitleText: 'WeChat', + navigationBarTextStyle: 'black' + } + }, created () { ... } }
src/pages/logs/index.vue - 同上
import { formatTime } from '@/utils/index' import card from '@/components/card' export default { + config: { + navigationBarTitleText: '查看啟動日志' + }, ... }
- src/app.json - 刪除
- src/pages/logs/main.json - 刪除
啟動運行
npm run dev
or
yarn dev
其他
使用 mpvue-entry 的項目暫不建議使用該模塊,后期會直接集成作為可選模式之一
該模塊的實現(xiàn)方式有以下兩種可選,但由于前者在編輯器中暫無法高亮,所以采用了第二種方式
- 自定義標簽 <config></config>
- <script></script> 標簽導出對象的 config 屬性
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Vue+Echarts報錯Cannot?set?properties?of?undefined?(settin
這篇文章主要介紹了Vue+Echarts報錯Cannot?set?properties?of?undefined?(setting?‘plate‘)的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08vue3的ref、isRef、toRef、toRefs、toRaw詳細介紹
本文詳細講解了vue3的ref、isRef、toRef、toRefs、toRaw,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-09-09基于Vue實現(xiàn)tab欄切換內(nèi)容不斷實時刷新數(shù)據(jù)功能
在項目開發(fā)中遇到這樣需求,就是有幾個tab欄,每個tab欄對應的ajax請求不一樣,內(nèi)容區(qū)域一樣,內(nèi)容為實時刷新數(shù)據(jù),實現(xiàn)方法其實很簡單的,下面小編給大家?guī)砹嘶赩ue實現(xiàn)tab欄切換內(nèi)容不斷實時刷新數(shù)據(jù)功能,需要的朋友參考下吧2017-04-04