前言

mpvue 的出现把 vue 的开发体验带到了小程序这个平台中,但其目录结构与传统的 vue 项目却并不完全一致,一个典型的页面包含以下三个文件:

index.vue // 页面文件
main.js // 打包入口,完成 vue 的实例化
main.json // 小程序特有的页面配置,早期写在 main.js 文件中

其中,每个页面的 main.js 文件基本都是一致的,可通过mpvue-entry 来自动生成(weex 也有类似的处理),而 main.json 我个人认为直接在 vue 文件中配置更为合适,于是开发了mpvue-config-loader 来加以实现

本文将介绍如何在 mpvue 官方模板的基础上,通过配置 mpvue-config-loader 来实现在 vue 文件内书写小程序的页面配置

步骤

初始化项目

vue init mpvue/mpvue-quickstart my-project

安装依赖

npm i mpvue-config-loader -D

or

yarn add mpvue-config-loader -D

修改打包配置

build/webpack. .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 中的内容,并修改格式以符合 eslint 规范

< >
export default {
+ config: {
+ pages: [
+  \'pages/index/main\',
+  \'pages/logs/main\',
+  \'pages/counter/main\'
+ ],
+ window: {
+  backgroundTextStyle: \'light\',
+  navigationBarBackgroundColor: \'#fff\',
+  navigationBar Text: \'WeChat\',
+  navigationBarTextStyle: \'black\'
+ }
+ },
 created () {
 ...
 }
}

src/pages/logs/index.vue - 同上

import { formatTime } from \'@/utils/index\'
import card from \'@/components/card\'

export default {
+ config: {
+ navigationBar Text: \'查看启动日志\'
+ },
 ...
}

  • src/app.json - 删除
  • src/pages/logs/main.json - 删除

启动运行

npm run dev

or

yarn dev

其他

使用 mpvue-entry 的项目暂不建议使用该模块,后期会直接集成作为可选模式之一

该模块的实现方式有以下两种可选,但由于前者在编辑器中暂无法高亮,所以采用了第二种方式

  • 自定义标签 <config></config>
  • < ></ > 标签导出对象的 config 属性

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

收藏 打印