基于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 相关文章推荐
javascript实现unicode和字符的互相转换
Jul 18 Javascript
jQuery循环遍历子节点并获取值的方法
Apr 14 Javascript
使用jQuery判断浏览器滚动条位置的方法
May 30 Javascript
用JS实现图片轮播效果代码(一)
Jun 26 Javascript
浅谈JavaScript 中有关时间对象的方法
Aug 15 Javascript
jQuery可见性过滤选择器用法示例
Sep 09 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
Feb 08 Javascript
微信小程序 this和that详解及简单实例
Feb 13 Javascript
vue下跨域设置的相关介绍
Aug 26 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
Dec 26 Javascript
深入学习js函数的隐式参数 arguments 和 this
Jun 24 Javascript
js中forEach,for in,for of循环的用法示例小结
Mar 14 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/11/16 PHP
php 读取文件乱码问题
2010/02/20 PHP
Adnroid 微信内置浏览器清除缓存
2016/07/11 PHP
jQuery EasyUI API 中文文档 - ProgressBar 进度条
2011/09/29 Javascript
使用javascript为网页增加夜间模式
2014/01/26 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
js Canvas实现的日历时钟案例分享
2016/12/25 Javascript
使用 Node.js 对文本内容分词和关键词抽取
2017/05/27 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
layui获取多选框中的值方法
2018/08/15 Javascript
使用angularjs.foreach时return的问题解决
2018/09/30 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[01:13]这,就是刀塔
2014/07/16 DOTA
[01:17:55]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
使用django-guardian实现django-admin的行级权限控制的方法
2018/10/30 Python
pymongo中聚合查询的使用方法
2019/03/22 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
python+selenium select下拉选择框定位处理方法
2019/08/24 Python
Python爬取知乎图片代码实现解析
2019/09/17 Python
python实现经典排序算法的示例代码
2021/02/07 Python
超级英雄、电影和电视、乐队和音乐T恤:Loud Clothing
2019/09/01 全球购物
Jar包的作用是什么
2014/03/30 面试题
毕业生自我鉴定
2013/11/05 职场文书
缅怀革命先烈演讲稿
2014/05/14 职场文书
销售岗位职责范本
2014/06/12 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
2014年超市工作总结
2014/11/19 职场文书
小学语文新课改心得体会
2016/01/22 职场文书
Python中字符串对象语法分享
2022/02/24 Python