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 相关文章推荐
Extjs中ComboBoxTree实现的下拉框树效果(自写)
May 28 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
移动端JQ插件hammer使用详解
Jul 03 Javascript
Javascript 5种方法实现过滤删除前后所有空格
Jun 22 Javascript
jQuery插件ImgAreaSelect实现头像上传预览和裁剪功能实例讲解一
May 26 jQuery
iscroll动态加载数据完美解决方法
Jul 18 Javascript
Vue数据监听方法watch的使用
Mar 28 Javascript
在Angular中使用JWT认证方法示例
Sep 10 Javascript
JavaScript继承与聚合实例详解
Jan 22 Javascript
vue + typescript + video.js实现 流媒体播放 视频监控功能
Jul 07 Javascript
vue+iview使用树形控件的具体使用
Nov 02 Javascript
Vue操作Storage本地化存储
Apr 29 Vue.js
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
《心理测量者3》剧场版动画预告
2020/03/02 日漫
php判断是否为json格式的方法
2014/03/04 PHP
PHP语法自动检查的Vim插件
2014/08/11 PHP
php验证session无效的解决方法
2014/11/04 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
var与Javascript变量隐式声明
2009/09/17 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
JS实现判断碰撞的方法
2015/02/11 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
2015/08/10 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
浅谈JavaScript 中有关时间对象的方法
2016/08/15 Javascript
JS检测数组类型的方法小结
2017/03/14 Javascript
js实现复制功能(多种方法集合)
2018/01/06 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
详解NodeJs项目 CentOs linux服务器线上部署
2019/09/16 NodeJs
从零搭一个自用的前端脚手架的方法步骤
2019/09/23 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
原生js+canvas实现验证码
2020/11/29 Javascript
vue 使用 v-model 双向绑定父子组件的值遇见的问题及解决方案
2021/03/01 Vue.js
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
家长评语和期望
2014/02/10 职场文书
共产党员公开承诺书
2014/03/25 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
社区平安建设汇报材料
2014/08/14 职场文书
党员批评与自我批评思想汇报(集锦)
2014/09/14 职场文书
2015财务年终工作总结范文
2015/05/22 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
golang生成vcf通讯录格式文件详情
2022/03/25 Golang
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android