mpvue 单文件页面配置详解


Posted in Javascript onDecember 02, 2018

前言

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

<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 的项目暂不建议使用该模块,后期会直接集成作为可选模式之一

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

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

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

Javascript 相关文章推荐
javascript cookie操作类的实现代码小结附使用方法
Jun 02 Javascript
js常用自定义公共函数汇总
Jan 15 Javascript
通过url查找a元素并点击
Apr 09 Javascript
JS正则表达式比较常见用法
Jan 26 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
Jan 28 Javascript
EasyUI布局 高度自适应
Jun 04 Javascript
总结Javascript中的隐式类型转换
Aug 24 Javascript
js实现图片轮播效果学习笔记
Jul 26 Javascript
vue router自动判断左右翻页转场动画效果
Oct 10 Javascript
VSCode配置react开发环境的步骤
Dec 27 Javascript
详解vue项目打包后通过百度的BAE发布到网上的流程
Mar 05 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
Nov 05 Javascript
Vuejs监听vuex中值的变化的方法示例
Dec 02 #Javascript
详解Vue一个案例引发「内容分发slot」的最全总结
Dec 02 #Javascript
在移动端使用vue-router和keep-alive的方法示例
Dec 02 #Javascript
Angular6 Filter实现页面搜索的示例代码
Dec 02 #Javascript
GOJS+VUE实现流程图效果
Dec 01 #Javascript
JavaScript实现简单轮播图效果
Dec 01 #Javascript
jQuery-ui插件sortable实现自由拖动排序
Dec 01 #jQuery
You might like
php代码运行时间查看类代码分享
2011/08/06 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
2008/11/03 Javascript
JavaScript 继承机制的实现(待续)
2010/05/18 Javascript
js 利用className得到对象的实现代码
2011/11/15 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
JavaScript 判断浏览器是否支持SVG的代码
2013/03/21 Javascript
javascript 表格内容排序 简单操作示例代码
2014/01/03 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
jquery实现select下拉框美化特效代码分享
2015/08/18 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
2016/09/21 Javascript
微信小程序 简单教程实例详解
2017/01/13 Javascript
vue使用Axios做ajax请求详解
2017/06/07 Javascript
在Mac下彻底卸载node和npm的方法
2018/05/16 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
Python 列表list使用介绍
2014/11/30 Python
Python使用dis模块把Python反编译为字节码的用法详解
2016/06/14 Python
Python_LDA实现方法详解
2017/10/25 Python
Python扩展内置类型详解
2018/03/26 Python
python 日期操作类代码
2018/05/05 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
使用PyCharm进行远程开发和调试的实现
2019/11/04 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
html5 canvas-2.用canvas制作一个猜字母的小游戏
2013/01/07 HTML / CSS
HTML5 canvas基本绘图之绘制线条
2016/06/27 HTML / CSS
如何在Shell脚本中使用函数
2015/09/06 面试题
社区国庆节活动方案
2014/02/05 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
小学生五一劳动节演讲稿
2015/03/18 职场文书
创业计划书之甜品店
2019/09/18 职场文书
详解CSS故障艺术
2021/05/25 HTML / CSS
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA