基于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 相关文章推荐
php对mongodb的扩展(小试牛刀)
Nov 11 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 Javascript
javascript学习笔记(六)数据类型和JSON格式
Oct 08 Javascript
jQuery中:has选择器用法实例
Dec 30 Javascript
javascript面向对象之this关键词用法分析
Jan 13 Javascript
jquery实现手机号码选号的方法
Jul 31 Javascript
深入浅析JavaScript中的Function类型
Jul 09 Javascript
jQuery中Datatables增加跳转到指定页功能
Feb 08 Javascript
jquery实现焦点轮播效果
Feb 23 Javascript
使用BootStrap实现标签切换原理解析
Mar 14 Javascript
Angular 4环境准备与Angular cli创建项目详解
May 27 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
Jun 19 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
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
jquery创建并行对象或者合并对象的实现代码
2012/10/10 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
轮播的简单实现方法
2016/07/28 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
在vue组件中使用axios的方法
2018/03/16 Javascript
用npm-run实现自动化任务的方法示例
2019/01/14 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
Python删除windows垃圾文件的方法
2015/07/14 Python
django 常用orm操作详解
2017/09/13 Python
Django中间件实现拦截器的方法
2018/06/01 Python
pyqt5 获取显示器的分辨率的方法
2019/06/18 Python
Django模板Templates使用方法详解
2019/07/19 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
英国潮流网站:END.(全球免邮)
2017/01/16 全球购物
类的核心特性有哪些
2014/01/01 面试题
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
护士自荐信怎么写
2013/10/18 职场文书
家长给老师的道歉信
2014/01/13 职场文书
桥梁工程专业求职信
2014/04/21 职场文书
超市收银员岗位职责
2015/04/07 职场文书
消防安全月活动总结
2015/05/08 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
nginx location中多个if里面proxy_pass的方法
2021/03/31 Servers
Python使用Web框架Flask开发项目
2022/06/01 Python
uniapp开发打包多端应用完整方法指南
2022/12/24 Javascript