编辑 | blame | 历史 | 原始文档

前言


```有问题给5星后加作者微信 可得到及时的解答```

微信二维码

做一个新的项目就需要常用的代码,比如

  • 登录,注册 ,找回密码,用户协议,404页面(模板)
  • 全局路由守卫(路由配置)
  • Request封装(请求封装)
  • api集中管理
  • 引入依赖的UI库(color-ui,uview-ui2.0)
  • flex常用布局css,
  • 小程序更新提示代码,配置分包,分享等必备代码
  • utils常用工具函数
  • 全局过滤器filters
  • 配置Vuex(store)
  • 无关系组件间的通信。
  • 使用easycom模式,让您无需引入组件即可直接使用(按需加载)
  • unicloud云函数封装请求
  • 进可攻,退可守的架构
  • 后面持续更新

为了提高自己的效率(说白了有点懒)决定把这些作为基础模板,下次做新项目直接用就行了

效果图

在这里插入图片描述

1、全局路由守卫

(1) 路由拦截

uni-simple-router 路由、拦截、最优雅的解决方案

(2) 路由配置

通过 vue.config.js 配合uni-read-pages,可以随心所欲的读取 pages.json 下的所有配置

2、Request封装

uni-ajax 基于 promise,轻量、灵活的uni-app 网络请求库

3、api集中管理

api集中管理; 为简化逻辑代码量整洁的原则,像调用函数一样调用api,做到代码分离,在apis目录统一创建api函数

4、小程序更新提示代码,配置分包,分享等必备代码

sub目录分包管理 由于微信小程序的限制,上传发布机制总包大小不能大于2m,所以项目若超出该限制,要在page.json中做分包处理,分包处理的配置与pages目录保持一致,封装更新提示代码

5、配置vuex

不需要引入每个子store模块

import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);
const files = require.context("./modules", false, /\.js$/);
let modules = {
	state: {},
	mutations: {},
	actions: {}
};

files.keys().forEach((key) => {
  Object.assign(modules.state, files(key)["state"]);
  Object.assign(modules.mutations, files(key)["mutations"]);
  Object.assign(modules.actions, files(key)["actions"]);
});
const store = new Vuex.Store(modules);
export default store;

页面使用Vuex

import { mapState,mapActions } from 'vuex';

computed: {
			...mapState(['userInfo'])
		}
methods: {
			...mapActions(['getUserInfo'])
		}
		

通用的mutations方法,只需要写一个就行了

	//更新state数据
	setStateAttr(state, param) {
		if (param instanceof Array) {
			for (let item of param) {
				state[item.key] = item.val;
			}
		} else {
			state[param.key] = param.val;
		}
	}

actions调用

	async setUserData({
		state,
		commit
	}, data) {
		commit('setStateAttr', {
			key: 'userInfo',
			val: data
		})
		uni.setStorageSync('userInfo', data);
	},

6、全局过滤器filters

main.js引入filters,使用如下
javascript {{shop.shopAddress|autoAddPoints}}

7、无关系组件间的通信=>事件车

事件车的基本原理就是在本项目Vue的原型对象里新生成一个Vue对象专门用来负责无关系,跨级组件间的通信

main.js声明事件bus
javascript Vue.prototype.$bus = new Vue() // event Bus 用于无关系组件间的通信。
A组件 监听($on)

// onload 里面
 this.$bus.$on('updateChecked', this.updateChecked)

// methods 里面
updateChecked(index){
 	console.log('这里就拿到了跨级组件的index',index)
 }

B组件 触发($emit)

B组件触发A组件的updateChecked 传index值给A组件
javascript this.$bus.$emit('updateChecked', index);

github源码下载

插件市场源码

常见问题

1 运行不了,控制台报错,请安装依赖

HBuilderX导入的项目带有中文,必须使用cnpm install 安装依赖 cnpm安装依赖

后面持续更新。。。。

牛云团队项目推荐

斗图,表情包小程序

万能节日头像小程序

智能垃圾分类小程序

微信小程序支付unicloud版

资源变现资讯、自媒体、新闻、博客小程序

反编译获取任何微信小程序源码——看这篇就够了

承接各类软件开发业务价格美丽 ,QQ 2214904953

README 5 KB
js_sdk/js-md5/CHANGELOG 2 KB
js_sdk/js-md5/LICENSE 1 KB
js_sdk/js-md5/README 3 KB
node_modules/.store/uni-read-pages@1.0.5/node_modules/uni-read-pages/README 2 KB
node_modules/.store/uni-simple-router@2.0.7/node_modules/uni-simple-router/.github/ISSUE_TEMPLATE/bug_report 919 b
node_modules/.store/uni-simple-router@2.0.7/node_modules/uni-simple-router/.github/ISSUE_TEMPLATE/feature_request 428 b
node_modules/.store/uni-simple-router@2.0.7/node_modules/uni-simple-router/CODE_OF_CONDUCT 3 KB
node_modules/.store/uni-simple-router@2.0.7/node_modules/uni-simple-router/README 2 KB
node_modules/.store/uni-simple-router@2.0.7/node_modules/uni-simple-router/RFC 1 KB
node_modules/.store/uni-simple-router@2.0.7/node_modules/uni-simple-router/progress 1 KB
node_modules/uni-read-pages/README 2 KB
node_modules/uni-simple-router/.github/ISSUE_TEMPLATE/bug_report 919 b
node_modules/uni-simple-router/.github/ISSUE_TEMPLATE/feature_request 428 b
node_modules/uni-simple-router/CODE_OF_CONDUCT 3 KB
node_modules/uni-simple-router/README 2 KB
node_modules/uni-simple-router/RFC 1 KB
node_modules/uni-simple-router/progress 1 KB
uni_modules/u-ajax/README 2 KB
uni_modules/u-ajax/changelog 1,002 b
uni_modules/uni-badge/changelog 2 KB
uni_modules/uni-badge/readme 406 b
uni_modules/uni-calendar/changelog 1 KB
uni_modules/uni-calendar/readme 3 KB
uni_modules/uni-card/changelog 1 KB
uni_modules/uni-card/readme 289 b
uni_modules/uni-cloud-router/changelog 100 b
uni_modules/uni-cloud-router/readme 102 b
uni_modules/uni-collapse/changelog 2 KB
uni_modules/uni-collapse/readme 526 b
uni_modules/uni-combox/changelog 810 b
uni_modules/uni-combox/readme 295 b
uni_modules/uni-config-center/changelog 96 b
uni_modules/uni-config-center/readme 4 KB
uni_modules/uni-countdown/changelog 1 KB
uni_modules/uni-countdown/readme 306 b
uni_modules/uni-data-checkbox/changelog 2 KB
uni_modules/uni-data-checkbox/readme 1 KB
uni_modules/uni-data-picker/changelog 3 KB
uni_modules/uni-data-picker/readme 1 KB
uni_modules/uni-data-select/changelog 1 KB
uni_modules/uni-data-select/readme 362 b
uni_modules/uni-dateformat/changelog 573 b
uni_modules/uni-dateformat/readme 324 b
uni_modules/uni-datetime-picker/changelog 7 KB
uni_modules/uni-datetime-picker/readme 1 KB
uni_modules/uni-drawer/changelog 720 b
uni_modules/uni-drawer/readme 294 b
uni_modules/uni-easyinput/changelog 3 KB
uni_modules/uni-easyinput/readme 517 b
uni_modules/uni-fab/changelog 1 KB
uni_modules/uni-fab/readme 305 b
uni_modules/uni-fav/changelog 955 b
uni_modules/uni-fav/readme 333 b
uni_modules/uni-file-picker/changelog 3 KB
uni_modules/uni-file-picker/readme 413 b
uni_modules/uni-forms/changelog 5 KB
uni_modules/uni-forms/readme 1 KB
uni_modules/uni-goods-nav/changelog 881 b
uni_modules/uni-goods-nav/readme 331 b
uni_modules/uni-grid/changelog 718 b
uni_modules/uni-grid/readme 281 b
uni_modules/uni-group/changelog 805 b
uni_modules/uni-group/readme 349 b
uni_modules/uni-icons/changelog 1,018 b
uni_modules/uni-icons/readme 297 b
uni_modules/uni-id/changelog 7 KB
uni_modules/uni-id/readme 2 KB
uni_modules/uni-id/uniCloud/cloudfunctions/common/uni-id/LICENSE 11 KB
uni_modules/uni-indexed-list/changelog 866 b
uni_modules/uni-indexed-list/readme 330 b
uni_modules/uni-link/changelog 705 b
uni_modules/uni-link/readme 399 b
uni_modules/uni-list/changelog 3 KB
uni_modules/uni-list/readme 15 KB
uni_modules/uni-load-more/changelog 975 b
uni_modules/uni-load-more/readme 370 b
uni_modules/uni-nav-bar/changelog 2 KB
uni_modules/uni-nav-bar/readme 329 b
uni_modules/uni-notice-bar/changelog 916 b
uni_modules/uni-notice-bar/readme 313 b
uni_modules/uni-number-box/changelog 1 KB
uni_modules/uni-number-box/readme 336 b
uni_modules/uni-pagination/changelog 1 KB
uni_modules/uni-pagination/readme 351 b
uni_modules/uni-popup/changelog 3 KB
uni_modules/uni-popup/readme 388 b
uni_modules/uni-rate/changelog 1 KB
uni_modules/uni-rate/readme 367 b
uni_modules/uni-row/changelog 594 b
uni_modules/uni-row/readme 375 b
uni_modules/uni-scss/changelog 239 b
uni_modules/uni-scss/readme 368 b
uni_modules/uni-search-bar/changelog 1 KB
uni_modules/uni-search-bar/readme 310 b
uni_modules/uni-section/changelog 37 b
uni_modules/uni-section/readme 344 b
uni_modules/uni-segmented-control/changelog 600 b
uni_modules/uni-segmented-control/readme 349 b
uni_modules/uni-steps/changelog 769 b
uni_modules/uni-steps/readme 309 b
uni_modules/uni-swipe-action/changelog 2 KB
uni_modules/uni-swipe-action/readme 356 b
uni_modules/uni-swiper-dot/changelog 702 b
uni_modules/uni-swiper-dot/readme 327 b
uni_modules/uni-table/changelog 1 KB
uni_modules/uni-table/readme 316 b
uni_modules/uni-tag/changelog 1 KB
uni_modules/uni-tag/readme 351 b
uni_modules/uni-title/changelog 501 b
uni_modules/uni-title/readme 406 b
uni_modules/uni-tooltip/changelog 298 b
uni_modules/uni-tooltip/readme 410 b
uni_modules/uni-transition/changelog 1 KB
uni_modules/uni-transition/readme 314 b
uni_modules/uni-ui/changelog 36 KB
uni_modules/uni-ui/readme 12 KB
uview-ui/README 3 KB
uview-ui/changelog 15 KB