前言

多页面应用于结构较于简单的页面,因为简答的页面使用router又过于麻烦.本脚手架出于这样的场景被开发出来.

使用脚手架搭配Hbuilder也同样可以快速使用vue开发安卓和IOS APP.

本文最大特点:

  • webpack4
  • 多页面
  • 跨域Proxy代理
  • VConsole移动端调试,手机上的开发者工具
  • es6/es7 babel 转换

项目地址 GitHub

使用手册

MogoH5+ 是一个 vue 多页面脚手架工具,结合 H5+可以快速开发安卓与苹果 APP.

即使不适用 Hbuilder 打包成 APP,本脚手架同样可以作为多页面网页生成的参考项目.

特性

  • 支持 Npm 生态
  • 支持 vue 语法,以及 vue 生态,比如 vux,mint,vant
  • 支持 ES6/ES7 语法
  • 使用 VConsole 调试
  • VSCode 友好
  • 局域网便捷调试
  • 兼容部分 mui 语法

这些特性其实不是什么新鲜特性,只是单独在 Hbuilder 无法使用.

快速上手

直接下载项目然后根据需求定制打包,最后通过 Hbuilder 云打包即可生成 APP.

本文自带一个案例是使用 VantUI 开发的几个界面,如果你喜欢其他 UI 同样可以替换成其他的 UI.

// 1.安装模块
npm i // or yarn
// 2.调试
npm start // 将manifest.json 的`页面入口` 修改成 http://your_ip:8082/
// 3.打包
npm run build

使用

主要怎么使用 MogoH5+做正式的开发,在开发过程中一定要遵守目录规则,否则会有意想不到的错误.

目录结构

.
├── docs // 文档
├── index.html // 入口模板
├── jsconfig.json //js配置
├── manifest.json //hbuilder 入口文件
├── src
│ ├── components //组件文件夹
│ │ └── List.vue //组件
│ ├── index.js //主页入口文件
│ ├── index.vue // 主页vue文件
│ ├── page // 页面
│ └── utils // 工具
├── unpackage // hbuilder 构建目录
│ └── res
└── webpack.config.js //webpack配置目录

新建页面

假如我们要新建一个名称为list的页面作为商品列表,我们就要在./src/page/goods下新建list.jslist.vue两个文件.list.js作为多页面的入口,list.vue,脚手架自带了几个页面可供参考.

遵循相对路径原则,如果在src访问这个页面则就是./goods/list.html !!! 后缀一定是.html

新建组件

组件放入./src/components目录下,如果组件较多,可自行建立目录.比如 demo 中使用的 Logo 组件可以作为参考.

新建工具库

工具库./src/utils主要放一些公用函数,比如请求,打开 webview,支付,分享等执行函数. demo 中封装了部分来自 mui 的函数比如自定义事件,webview.这些函数可以作为参考.

`common.js` 是每个页面都需要加载的一个 js,里面加载了`fastclick`和`vconsole`.如果全局需要加统计,全局执行的函数,可以放在这个文件里面.

`./src/utils` 做了 `alias`别名,可以 直接这样加载 `import common from "Utils/common"`.

发送请求

请求库

demo 的请求使用的是 axios,同样你喜欢什么库都可以自己去封装.

常见的请求库有fetch,request,SuperAgent,jquery-ajax.

跨域

由于npm start后,调试网页是挂在局域网上,并且作为 Hbuilder 的页面入口,因此,在请求时会出现跨域.

./build.js中使用本地代理,将下面的https://api.douban.com修改成自己使用的业务域名即可.

proxy: {
"/api": {
name:"DOUBANAPI", // 自己取名
target: "https://api.douban.com",
pathRewrite: { "^/api": "" },
changeOrigin: true,
secure: false
},
"/baidu_api": {
name:"BAIDUAPI", // 自己取名
target: "https://api.baidu.com",
pathRewrite: { "^/api": "" },
changeOrigin: true,
secure: false
},
...
}

如果有更多业务域名可以继续在proxy添加.

只有开发的时候才会有跨域问题,打包后的文件网址会被替换成被代理的网址,因此发送请求一定要加上名称DOUBANAPI

request({
url: DOUBANAPI + "/bookList"
});

调试

在 Hbuilder 中调试会有诸多问题,比如:

  • 不能直接打印数组,对象,需要转成字符串.
  • 即使使用webview调试,仍然不能打印出数组,在 mac 上使用也非常不方便.

使用VConsole,调试的问题基本就脱离 Hbuilder 了,使用VConsole主要优点如下

  • 可以打印数组,对象
  • 可以查看请求,cookie,Localstorage
  • System栏目中可以看到页面加载速度
  • 可以查看元素

基本上就是一个简化的开发者工具栏,对于调试来说非常简便了.

打包

npm run build

运行命令后会有一个dist目录,里面的经过压缩的静态文件.

Hbuilder 发行打包

在使用 Hbuilder 制作安装包前,请将入口文件修改成dist/index.html. 然后可以安心的打包了.

兼容 mui.js

对于兼容 mui 部分函数的问题,已经在移植部分函数到Utils中,在未来的更新中会慢慢移植.

用vue快速开发app的脚手架工具的更多相关文章

  1. 如何优雅的使用vue+vux开发app -03

    如何优雅的使用vue+vux开发app -03 还是一个错误的示范,但是离优雅差的不远了... <!DOCTYPE html> <html> <head> < ...

  2. 如何优雅的使用vue+vux开发app -02

    如何优雅的使用vue+vux开发app -02 很明显这又是一个错误的示范,请勿模仿 使用动态组件实现保留状态的路由 <!DOCTYPE html> <html> <he ...

  3. 如何优雅的使用vue+vux开发app -01

    如何优雅的使用vue+vux开发app -01 很明显下面是个错误的示范: <!DOCTYPE html> <html> <head> <title>v ...

  4. 十九. 想快速开发app,需要找外包吗?

    健生干货分享:第19篇 摘要:最近和两位准备开发app的创业者聊天,他们之前没有移动互联网的相关经验,有的是想法和资金.他们在纠结:想快速开发app,需要找外包吗? 最近和两位想开发app的创业者聊天 ...

  5. Vue+cordova开发App

    Vue+cordova开发App https://www.imooc.com/article/70062

  6. 全面超越Appium,使用Airtest超快速开发App爬虫

    想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D.Cocos2 ...

  7. 【转载】如果快速开发APP&创业

    先贴原文所在个人博客: http://uikoo9.com/ 今天看了一些这个人的文章,还是有一定见解的,比如下面这篇 <如何快速开发出一个高质量的APP——创业谈> http://uik ...

  8. cordova+vue混合式开发App

    应要求第一次使用cordova打包了一下vue写的app项目,期间遇到了不少问题,整理一下流程并记录一下常见问题吧.        cordova打包项目需要的环境配置啥的就不具体讲啦,百度一下很多教 ...

  9. 开发一个 Parcel-vue 脚手架工具

    前言 像我们熟悉的 vue-cli,create-react-app 等脚手架,只需要输入简单的命令 vue init webpack project,即可快速帮我们生成一个初始项目.在实际工作中,我 ...

随机推荐

  1. <Android>日期,时间选择对话框

    a)         调用Activity的onCreateDialog()方法创建对话框 b)        分别在OnDateSetListener的onDateSet()方法和OnTimeSet ...

  2. 认识简单的C

  3. 关于如何解决PHPCMS V9内容搜索显示不全问题解决方案

    站长朋友们都晓得只要是开源的PHP程序都会有漏洞存在.如果想完美的建站就需要自己去研究打补丁了.最近很多站长联系小编咨询用phpcms建站当在首页搜索内容的时候有的居然搜索不到.小编感到很是奇怪于是就 ...

  4. C语言100例02 PHP版(练习)

    问题: 企业发放的奖金根据利润提成. 利润(I)低于或等于10万元时,奖金可提10%: 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%: 20万到 ...

  5. C运行时库

    原文地址:http://blog.csdn.net/wqvbjhc/article/details/6612099 在开发window程序是经常会遇到编译好好的程序拿到另一台机器上面无法运行的情况,这 ...

  6. arp_ignore

    上一篇文件说了arp_announce,那么到这里arp_ignore,我们直接看代码应该也比较容易立即了 目前我知道的是arp_ignore = 0,只要IP是自己机器上的,都可以回复: 说实话就是 ...

  7. NCAIOC

    NCAIOC Npm Cli All In One Client https://github.com/xgqfrms/NCAIOC https://cdn.xgqfrms.xyz/web-ide/i ...

  8. 第三章 AOP

    什么是AOP AOP的编写方式 什么是AOP? 是一种面向切面的思想,关注的是切面中的相似功能,将这些功能抽离出来,提高代码的复用性 AOP术语 advice-通知:要执行的任务 Spring切面有5 ...

  9. HttpServletRequestWrapper 是HttpServletRequest的包装类 ·关系相当于 int 与integer的关系

    HttpServletRequestWrapper 是HttpServletRequest的包装类 ·关系相当于 int 与integer的关系

  10. AOJ.综合训练.2016-12-8

    提示:多个题目的代码采用了C ++的写法,对应编译器选择G ++,请不要直接复制代码. 下周实验考试,GOOD LUCK! 感谢汪神提供E题C语言代码 所有题目已更新为C语言写法 所有题目已更新为C语 ...