基于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 相关文章推荐
图片自动缩小的js代码,用以防止图片撑破页面
Mar 12 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
Feb 04 Javascript
JavaScript实现图片自动加载的瀑布流效果
Apr 11 Javascript
AngularJs Managing Service Dependencies详解
Sep 02 Javascript
详解微信第三方小程序代开发
Jun 23 Javascript
Bootstrap 中data-[*] 属性的整理
Mar 13 Javascript
解决Mac node版本升级失败的问题
May 16 Javascript
layer弹出层全屏及关闭方法
Aug 17 Javascript
vue插槽slot的理解和使用方法
Apr 03 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
Jun 17 Javascript
简单了解vue 插值表达式Mustache
Jul 22 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
星际玩家的三大定律
2020/03/04 星际争霸
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
PHP技术开发技巧分享
2010/03/23 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
PHPCMS手机站伪静态设置详细教程
2017/02/06 PHP
php 数据结构之链表队列
2017/10/17 PHP
PhpStorm本地断点调试的方法步骤
2018/05/21 PHP
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
Node.js中child_process实现多进程
2015/02/03 Javascript
jQuery源码解读之addClass()方法分析
2015/02/20 Javascript
原生js实现数字字母混合验证码的简单实例
2015/12/10 Javascript
jquery二级目录选中当前页的css样式
2016/12/08 Javascript
微信小程序 radio单选框组件详解及实例代码
2017/01/10 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
vue.js中$set与数组更新方法
2018/03/08 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
vue 子组件修改data或调用操作
2020/08/07 Javascript
python编写的最短路径算法
2015/03/25 Python
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
深入分析python 排序
2020/08/24 Python
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
加拿大城市本地限时优惠:Buytopia.ca
2018/09/19 全球购物
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
"引用"与指针的区别是什么
2016/09/07 面试题
学校爱国卫生月活动总结
2014/06/25 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
动画《平凡职业成就世界最强》宣布制作OVA
2022/04/01 日漫