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中令你抓狂的魔术变量
Nov 30 Javascript
Prototype使用指南之string.js
Jan 10 Javascript
jquery 单引号和双引号的区别及使用注意
Jul 31 Javascript
禁止IE用右键的JS代码
Dec 30 Javascript
get(0).tagName获得作用标签示例代码
Oct 08 Javascript
js读取并解析JSON类型数据的方法
Nov 14 Javascript
Javascript中字符串replace方法的第二个参数探究
Dec 05 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
Oct 06 Javascript
基于Swiper实现移动端页面图片轮播效果
Dec 28 Javascript
Vue-Router基础学习笔记(小结)
Oct 15 Javascript
Vue插槽原理与用法详解
Mar 05 Javascript
npm qs模块使用详解
Feb 07 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
UCenter Home二次开发指南
2009/05/28 PHP
php判断变量类型常用方法
2012/04/24 PHP
PHP获取浏览器信息类和客户端地理位置的2个方法
2014/04/24 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
CI框架源码解读之URI.php中_fetch_uri_string()函数用法分析
2016/05/18 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
基于jquery实现的可编辑下拉框实现代码
2014/08/02 Javascript
node.js中的fs.fstat方法使用说明
2014/12/15 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
JavaScript实现计算字符串中出现次数最多的字符和出现的次数
2015/03/12 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
js实现短信发送倒计时功能(正则验证)
2017/02/10 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
原生JavaScript实现日历功能代码实例(无引用Jq)
2019/09/23 Javascript
[02:20]DOTA2亚洲邀请赛 IG战队出场宣传片
2015/02/07 DOTA
Python实现SVN的目录周期性备份实例
2015/07/17 Python
Django数据库操作的实例(增删改查)
2017/09/04 Python
Sanic框架路由用法实例分析
2018/07/16 Python
解决python ogr shp字段写入中文乱码的问题
2018/12/31 Python
简单了解python关系(比较)运算符
2019/07/08 Python
Python PyInstaller库基本使用方法分析
2019/12/12 Python
加拿大最大的相机店:Henry’s
2017/05/17 全球购物
如何理解transaction事务的概念
2015/05/27 面试题
文秘专业应届生求职信范文
2013/11/14 职场文书
社区十八大感言
2014/01/19 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
大学生自荐信范文
2015/03/05 职场文书
社区重阳节活动总结
2015/03/24 职场文书
禁毒心得体会范文
2016/01/15 职场文书
幼儿园语言教学反思
2016/02/23 职场文书
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript
Python 绘制多因子柱状图
2022/05/11 Python