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 相关文章推荐
探索Emberjs制作一个简单的Todo应用
Nov 07 Javascript
JavaScript:Div层拖动效果实例代码
Aug 06 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
Oct 26 Javascript
Bootstrap布局组件应用实例讲解
Feb 17 Javascript
Node.js模块封装及使用方法
Mar 06 Javascript
JS制作图形验证码实现代码
Oct 19 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
Dec 19 Javascript
Angular4实现鼠标悬停3d倾斜效果
Oct 25 Javascript
如何利用ES6进行Promise封装总结
Feb 11 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
May 14 Javascript
vue项目使用.env文件配置全局环境变量的方法
Oct 24 Javascript
在Vue.js中使用TypeScript的方法
Mar 19 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
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
laravel 5.4 + vue + vux + element的环境搭配过程介绍
2018/04/26 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
extjs 学习笔记(二) Ext.Element类
2009/10/13 Javascript
Jquery中对数组的操作代码
2011/08/12 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
javascript清空table表格的方法
2015/05/14 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
Vue中如何实现proxy代理
2018/04/20 Javascript
AngularJS实现与后台服务器进行交互的示例讲解
2018/08/13 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
详解如何运行vue项目
2019/04/15 Javascript
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
layui前端时间戳转化实例
2019/11/15 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
python生成日历实例解析
2014/08/21 Python
Python多线程原理与用法详解
2018/08/20 Python
使用Python向C语言的链接库传递数组、结构体、指针类型的数据
2019/01/29 Python
基于python历史天气采集的分析
2019/02/14 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
Python中求对数方法总结
2020/03/10 Python
详解CSS3中使用gradient实现渐变效果的方法
2015/08/18 HTML / CSS
澳大利亚潮流尖端的快时尚品牌:Cotton On
2016/09/26 全球购物
来自美国主售篮球鞋的零售商店:KICKSUSA
2017/11/28 全球购物
英国最出名高街品牌:Forever Unique
2018/02/24 全球购物
Rhone官方网站:男士运动服装、健身服装和高级运动服
2019/05/01 全球购物
统计系教授推荐信
2014/02/28 职场文书
工会趣味活动方案
2014/08/18 职场文书
2015年医药代表工作总结
2015/04/25 职场文书
法人代表证明书范本
2015/06/18 职场文书
奠基仪式致辞
2015/07/30 职场文书
Spring 使用注解开发
2022/05/20 Java/Android