基于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 相关文章推荐
使用 JScript 创建 .exe 或 .dll 文件的方法
Jul 13 Javascript
JQuery实现用户名无刷新验证的小例子
Mar 22 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
Oct 15 Javascript
jQuery实现为图片添加镜头放大效果的方法
Jun 25 Javascript
浅谈angularjs module返回对象的坑(推荐)
Oct 21 Javascript
Angular.js实现注册系统的实例详解
Dec 18 Javascript
angularjs实现首页轮播图效果
Apr 14 Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 Javascript
详解JS构造函数中this和return
Sep 16 Javascript
vue 实现边输入边搜索功能的实例讲解
Sep 16 Javascript
JS XMLHttpRequest原理与使用方法深入详解
Apr 30 Javascript
深入了解JavaScript词法作用域
Jul 29 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 编程请选择正确的文本编辑软件
2006/12/21 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
js控制div及网页相关属性的代码
2009/12/19 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
html+js实现动态显示本地时间
2013/09/21 Javascript
JS简单实现元素复制示例附图
2013/11/19 Javascript
JavaScript定义类的几种方式总结
2014/01/06 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
JavaScript表单验证开发
2016/11/23 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
详解webpack2异步加载套路
2018/09/14 Javascript
从零开始搭建vue移动端项目到上线的步骤
2018/10/15 Javascript
详解Vue.js中引入图片路径的几种方式
2019/06/17 Javascript
ES6 Symbol数据类型的应用实例分析
2019/06/26 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
栈和队列数据结构的基本概念及其相关的Python实现
2015/08/24 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
解决Tensorflow sess.run导致的内存溢出问题
2020/02/05 Python
Python项目跨域问题解决方案
2020/06/22 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
详解Python 中的 defaultdict 数据类型
2021/02/22 Python
日本热销NO.1胶原蛋白冻:Aishitoto爱希特多
2019/06/20 全球购物
高中的职业生涯规划书
2013/12/28 职场文书
环保专业大学生职业规划设计
2014/01/10 职场文书
无房产证房屋转让协议书合同样本
2014/10/18 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
2015学生会文艺部工作总结
2015/04/03 职场文书
事业单位工作人员2015年度思想工作总结
2015/10/15 职场文书
2019最新企业员工考勤管理制度(通用版)!
2019/07/02 职场文书
导游词之贵州百里杜鹃
2019/10/29 职场文书
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
SpringBoot集成Redis的思路详解
2021/10/16 Redis