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 相关文章推荐
event.srcElement+表格应用
Aug 29 Javascript
浅析javascript的间隔调用和延时调用
Nov 12 Javascript
jquery插件qrcode在线生成二维码
Apr 26 Javascript
Backbone.js的一些使用技巧
Jul 01 Javascript
深入分析下javascript中的[]()+!
Jul 07 Javascript
举例说明如何为JavaScript的方法参数设置默认值
Nov 17 Javascript
jQuery实现的AJAX简单弹出层效果代码
Nov 26 Javascript
JavaScript 闭包详细介绍
Sep 28 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
Dec 22 Javascript
js实现登录框鼠标拖拽效果
Mar 09 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
Dec 23 jQuery
Vue+Vuex实现自动登录的知识点详解
Mar 04 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
SONY ICF-F10中波修复记
2021/03/02 无线电
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
php去除字符串中空字符的常用方法小结
2015/03/17 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
详解PHP使用Redis存储session时的一个Warning定位
2017/07/05 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
jQuery 自动增长的文本输入框实现代码
2010/04/02 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
用JavaScript获取页面文档内容的实现代码
2016/06/10 Javascript
解决微信浏览器Javascript无法使用window.location.reload()刷新页面
2016/06/21 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
JS使用对象的defineProperty进行变量监控操作示例
2019/02/02 Javascript
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
2021/02/26 Vue.js
python with statement 进行文件操作指南
2014/08/22 Python
Python实现的一个找零钱的小程序代码分享
2014/08/25 Python
Python获取电脑硬件信息及状态的实现方法
2014/08/29 Python
Python实现的十进制小数与二进制小数相互转换功能
2017/10/12 Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
2018/02/24 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
如何使用Python自动控制windows桌面
2019/07/11 Python
django admin组件使用方法详解
2019/07/19 Python
Django异步任务线程池实现原理
2019/12/17 Python
Python 音频生成器的实现示例
2019/12/24 Python
html5中JavaScript removeChild 删除所有节点
2014/05/16 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
自我评价是什么
2014/01/04 职场文书
鼓舞士气的口号
2014/06/16 职场文书
新闻编辑求职信
2014/07/13 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL