基于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 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
ajax 文件上传应用简单实现
Mar 03 Javascript
javascript 鼠标拖动图标技术
Feb 07 Javascript
一个可以增加和删除行的table并可编辑表格中内容
Jun 16 Javascript
原生javascript实现图片按钮切换
Jan 12 Javascript
使用AngularJS实现表单向导的方法
Jun 19 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
Oct 09 Javascript
ES6概念 ymbol.for()方法
Dec 25 Javascript
JS HTML图片显示Canvas 压缩功能
Jul 21 Javascript
解析Vue2 dist 目录下各个文件的区别
Nov 22 Javascript
Vue源码解读之Component组件注册的实现
Aug 24 Javascript
如何开发一个渐进式Web应用程序PWA
May 10 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
ThinkPHP空模块和空操作详解
2014/06/30 PHP
PHP中IP地址与整型数字互相转换详解
2014/08/20 PHP
PHP使用strrev翻转中文乱码问题的解决方法
2017/01/13 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
msn上的tab功能Firefox对childNodes处理的一个BUG
2008/01/21 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
将文本输入框内容加入表中的js代码
2013/08/18 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
jQuery EasyUI Panel面板组件使用详解
2017/02/28 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
Vue解析带html标签的字符串为dom的实例
2019/11/13 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
详解python中的线程
2018/02/10 Python
Python函数参数操作详解
2018/08/03 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
python制作一个简单的gui 数据库查询界面
2020/11/19 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
求职简历的自我评价怎样写好
2013/10/07 职场文书
个人简历的自荐信
2013/10/23 职场文书
企业申诉管理制度
2014/01/30 职场文书
垃圾分类的活动方案
2014/08/15 职场文书
审计班子对照检查材料
2014/08/27 职场文书
师德标兵先进事迹材料
2014/12/19 职场文书
员工旷工检讨书
2015/08/15 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
python 中[0]*2与0*2的区别说明
2021/05/10 Python
MySQL COUNT函数的使用与优化
2021/05/10 MySQL
Python编程源码报错解决方法总结经验分享
2021/10/05 Python
Qt数据库应用之实现图片转pdf
2022/06/01 Java/Android