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 相关文章推荐
用正则获取指定路径文件的名称
Feb 27 Javascript
JavaScript 基于原型的对象(创建、调用)
Oct 16 Javascript
可简单避免的三个JS发布错误的详细介绍
Aug 02 Javascript
js获取checkbox值的方法
Jan 28 Javascript
JavaScript获取当前日期是星期几的方法
Apr 06 Javascript
再谈JavaScript线程
Jul 10 Javascript
原生js实现网易轮播图效果
Apr 10 Javascript
angularJS深拷贝详解
Mar 23 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
Aug 14 Javascript
js正则表达式校验指定字符串的方法
Jul 23 Javascript
JavaScript检测浏览器是否支持CSS变量代码实例
Apr 03 Javascript
解决ant Design中Select设置initialValue时的大坑
Oct 29 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遍历数组的几种方法
2012/03/22 PHP
关于svn冲突的解决方法
2013/06/21 PHP
PHP获取网页标题的3种实现方法代码实例
2014/04/11 PHP
php实现压缩多个CSS与JS文件的方法
2014/11/11 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
繁简字转换功能
2006/07/19 Javascript
Apply an AutoFormat to an Excel Spreadsheet
2007/06/12 Javascript
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
jquery子元素过滤选择器使用示例
2013/06/24 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
2015/04/06 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
基于jQuery的ajax方法封装
2016/07/14 Javascript
BootStrap实现响应式布局导航栏折叠隐藏效果(在小屏幕、手机屏幕浏览时自动折叠隐藏)
2016/11/30 Javascript
基于vue2.x的电商图片放大镜插件的使用
2018/01/22 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
python Django连接MySQL数据库做增删改查
2013/11/07 Python
Python创建xml的方法
2015/03/10 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
python实现转圈打印矩阵
2019/03/02 Python
Python使用POP3和SMTP协议收发邮件的示例代码
2019/04/16 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
Python中logging日志库实例详解
2020/02/19 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
Python grpc超时机制代码示例
2020/09/14 Python
豪华床上用品、床单和浴室必需品:Peacock Alley
2019/09/04 全球购物
Windows和Linux动态库应用异同
2016/04/17 面试题
安全生产检查通报
2014/01/29 职场文书
高中生操行评语
2014/04/25 职场文书
小学教师党员承诺书
2015/04/27 职场文书
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android
Python编写冷笑话生成器
2022/04/20 Python
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL