基于mpvue搭建微信小程序项目框架的教程详解


Posted in Javascript onApril 10, 2019

简介:

mpvue框架对于从没有接触过小程序又要尝试小程序开发的人员来说,无疑是目前最好的选择。mpvue从底层支持 Vue.js 语法和构建工具体系,同时再结合相关UI组件库,便可以高效的实现小程序开发

前言:

本文讲述如何搭建完整的小程序项目框架,因为是第一次使用,有不完善的地方请大佬指正。

搭建内容包括:

1、使用scss语法:依赖插件sass-loader 、node-sass

2、像vue一样使用路由:依赖插件 mpvue-entry 和 mpvue-router-patch

3、使用ZanUI:有赞团队的小程序版UI组件库(GitHub)

4、使用vuex进行状态管理

5、使用flyio进行数据交互:GitHub地址

项目结构:

讲解:

一、使用scss语法

1、安装依赖

cnpm install node-sass sass-loader --save-dev

因为一些不知名的原因导致node-sass经常安装失败,所以采用cnpm方式安装最好

2、在.vue文件中的style节点加上lang=”scss”,这样就可以愉快地使用sass进行开发了,无需再webpack.base.config.js中配置loader,webpack会自动识别.scss文件以及.vue中的scss代码。

二、像vue一样使用路由

在使用mpvue提供的命令 vue init mpvue/mpvue-quickstart my-project 创建项目后,会发现每个页面都要配置main.js 文件,不仅繁琐而且显得多余,所以我们是否可以改造成像vue一样使用路由的方式呢,答案是可以的,需要用到mpvue-entry 和 mpvue-router-patch插件(集中式页面配置,自动生成各页面的入口文件,优化目录结构,支持新增页面热更新)和

mpvue-entry: 集中式页面配置,自动生成各页面的入口文件,优化目录结构,支持新增页面热更新

mpvue-router-patch: 在 mpvue 中使用 vue-router 兼容的路由写法

1、安装依赖

cnpm install mpvue-entry --save-dev
cnpm install mpvue-router-patch --save

2、项目src文件夹下创建router文件夹和router.js文件

基于mpvue搭建微信小程序项目框架的教程详解

3、项目引入src下的main.js文件 

import Vue from 'vue'
import MpvueRouterPatch from 'mpvue-router-patch'
Vue.use(MpvueRouterPatch)

注:main.js的 export default {} 不能为空,不然编译时不生成app.json文件

4、修改webpack.base.conf.js配置文件

const MpvueEntry = require('mpvue-entry')
module.exports = {
  entry:MpvueEntry.getEntry('./src/router/router.js'),
  .......
} 

5、配置router.js 文件 

// 首个路由为首页
module.exports = [{
  path: 'pages/index',
  name: 'Index',
  config: {
    navigationBarTitleText: '文章详情',

//引入UI组件,后面会讲到
    usingComponents:{
      "zan-button": "../dist/btn/index"
    }
  }
}, {
  path: 'pages/list/list',
  name: 'List',
  config: {
    navigationBarTitleText: 'list详情'
  }
}]

  三、使用小程序UI组件

1、将UI组件库克隆到本地

基于mpvue搭建微信小程序项目框架的教程详解

2、将上图中的dist目录拷贝到mpvue项目的输出目录中

基于mpvue搭建微信小程序项目框架的教程详解

3、在router.js文件中引入UI组件 

module.exports = [{
  path: 'pages/index',
  name: 'Index',
  config: {
    navigationBarTitleText: '文章详情',
    //引入UI组件
    usingComponents:{
      //组件名和引用路径
      "zan-button": "../dist/btn/index"
    }
  }
}]

4、页面中使用UI组件 

<template>
  <div class="index">
    <zan-button type="primary" size="small">确认付款</zan-button>
  </div>
</template>

5、

小程序使用自定义组件:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/

ZanUI组件库使用讲解:https://github.com/youzan/zanui-weapp/blob/dev/README.md

 

四、使用vuex进行状态管理

1、安装

cnpm install vuex --save

2、引入(main.js文件)

impotr store from './vuex/index'


Vue.prototrype.$store = store//挂在到vue原型上

 五、使用flyio进行数据交互

1、安装

  cnpm install flyio --save

2、引入(main.js文件) 

 const Fly = require("flyio/dist/npm/wx")//引入

const fly = new Fly


Vue.prototrype.$fly = fly//挂在到vue原型上

3、使用

   

 add(){
        //在add方法中执行接口请求
        this.$fly.get('http://******/user?id=133')
          .then(function (res) {
              //请求成功
              console.log('res',res);
          })
          .catch(function (err) {
            //请求失败
            console.log('err',err);
          });
      }

总结

以上所述是小编给大家介绍的基于mpvue搭建微信小程序项目框架的教程详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
Jquery 设置标题的自动翻转
Oct 03 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
Nov 13 Javascript
jQuery select表单提交省市区城市三级联动核心代码
Jun 09 Javascript
JavaScript的jQuery库插件的简要开发指南
Aug 12 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
Aug 21 Javascript
JavaScript 常见安全漏洞和自动化检测技术
Aug 21 Javascript
使用JS实现图片展示瀑布流效果的实例代码
Sep 12 Javascript
第一次接触Bootstrap框架
Oct 24 Javascript
深入理解react-router@4.0 使用和源码解析
May 23 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
Jul 28 Javascript
详解Vue快速零配置的打包工具——parcel
Jan 16 Javascript
vue地址栏直接输入路由无效问题的解决
Nov 15 Javascript
Webpack4+Babel7+ES6兼容IE8的实现
Apr 10 #Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
Apr 10 #Javascript
用node撸一个监测复联4开售短信提醒的实现代码
Apr 10 #Javascript
从0到1搭建Element的后台框架的方法步骤
Apr 10 #Javascript
详解vue.js移动端配置flexible.js及注意事项
Apr 10 #Javascript
小程序分享模块超级详解(推荐)
Apr 10 #Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 #Javascript
You might like
一个颜色轮换的简单例子
2006/10/09 PHP
xajax写的留言本
2006/11/25 PHP
PHP删除数组中空值的方法介绍
2014/04/14 PHP
使用Laravel中的查询构造器实现增删改查功能
2019/09/03 PHP
dojo随手记 gird组件引用
2011/02/24 Javascript
Javascript 键盘事件的组合使用实现代码
2012/05/04 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
倒记时60刷新网页的js代码
2014/02/18 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
javascript面向对象之访问对象属性的两种方式分析
2015/01/13 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
JavaScript判断用户名和密码不能为空的实现代码
2016/05/16 Javascript
深入浅析JavaScript中的3DES
2016/08/24 Javascript
利用原生js和jQuery实现单选框的勾选和取消操作的方法
2016/09/04 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
jQuery插件zTree实现的多选树效果示例
2017/03/08 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
2018/11/13 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Python内建数据结构详解
2016/02/03 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
TensorFlow实现iris数据集线性回归
2018/09/07 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
基于python实现监听Rabbitmq系统日志代码示例
2020/11/28 Python
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
大学生个人实习的自我评价
2014/02/15 职场文书
前处理组长岗位职责
2014/03/01 职场文书
工作作风整顿个人剖析材料
2014/10/11 职场文书
员工评语范文
2014/12/31 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
Golang原生rpc(rpc服务端源码解读)
2022/04/07 Golang