基于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广告代码
May 30 Javascript
JavaScript 事件记录使用说明
Oct 20 Javascript
jQuery EasyUI API 中文文档 - PropertyGrid属性表格
Nov 18 Javascript
JavaScript伸缩的菜单简单示例
Dec 03 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
基于Jquery实现仿百度百科右侧导航代码附源码下载
Nov 27 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
Vue.js路由组件vue-router使用方法详解
Dec 02 Javascript
ionic3 懒加载
Aug 16 Javascript
jQuery实现获取动态添加的标签对象示例
Jun 28 jQuery
JS监听事件的叠加和移除功能
Nov 19 Javascript
微信小程序之swiper滑动面板用法示例
Dec 04 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排序算法(冒泡排序,快速排序)
2012/10/09 PHP
PHP5中GD库生成图形验证码(有汉字)
2013/07/28 PHP
php从csv文件读取数据并输出到网页的方法
2015/03/14 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
2017/02/04 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
JS高级拖动技术 setCapture,releaseCapture
2011/07/31 Javascript
解析JavaScript中delete操作符不能删除的对象
2013/12/03 Javascript
Document.location.href和.replace的区别示例介绍
2014/03/04 Javascript
javascript下拉框选项单击事件的例子分享
2015/03/04 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
js数组去重的hash方法
2016/12/22 Javascript
基于jQuery实现照片墙自动播放特效
2017/01/12 Javascript
nginx+vue.js实现前后端分离的示例代码
2018/02/12 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
详解vue-router数据加载与缓存使用总结
2018/10/29 Javascript
微信小程序带动画弹窗组件使用方法详解
2018/11/27 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
基于JavaScript实现留言板功能
2020/03/16 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
python多线程socket编程之多客户端接入
2017/09/12 Python
python的pstuil模块使用方法总结
2019/07/26 Python
Python使用Selenium实现淘宝抢单的流程分析
2020/06/23 Python
python输入中文的实例方法
2020/09/14 Python
python 爬取小说并下载的示例
2020/12/07 Python
一个入门级python爬虫教程详解
2021/01/27 Python
HTML5自定义mp3播放器源码
2020/01/06 HTML / CSS
印尼第一大家居、生活和家具电子商务:Ruparupa
2019/11/25 全球购物
介绍一下XMLHttpRequest对象
2012/02/12 面试题
法律进学校实施方案
2014/03/15 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
初婚未育证明样本
2015/06/18 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
Python机器学习之基础概述
2021/05/19 Python