源码地址:https://github.com/dr34m-cn/uniapp-demo
框架后期或有更新,请以源码中README.md文档为准
本通用框架基于uniapp与uView UI 2.0.31,封装了日常开发中最常用的接口请求、数据中心、环境配置等操作,上手即用。
1 | |
其他平台构建,例如快应用、支付宝小程序等详见uniapp官方文档
修改/src/manifest.json,例如修改前缀为/h5如下
1 | |
更多配置详见uniapp官方文档
配置文件在/src/config/index.js
1 | |
其他平台运行,例如快应用、支付宝小程序等详见uniapp官方文档
通用配置请放在/src/config/index.js中,例如后端地址。
数据中心统一管理需要在全局使用的数据,可以临时存储(h5刷新页面、小程序/app退出等操作数据就会丢失)或者持久化存储。
在这里定义和存储的数据是全局动态响应的,这让您无需繁琐地写监听方法。
配置文件在/src/store/index.js,建议命名为vuex_开头,以便与页面数据区分避免冲突。
直接在/src/store/index.js中定义,如下边的vuex_tmp
1 | |
在/src/store/index.js中定义,并写入saveStateKeys中,如下边的vuex_token,定义的时候格式为vuex_token: lifeData.vuex_token ? lifeData.vuex_token : null
1 | |
<template>中取值{{ vuex_token }}App.vue页面)<script>中取值this.vuex_tokenvm.vuex_token可以设定值的类型为基本数据类型和可以进行序列化的对象/列表等。
1 | |
接口基于luch-request,uView对其简单封装,本示例使用的是uView封装后的,对最常用的场景做了说明,更详细的文档见uView的http请求
接口拦截器在/src/utils/request.js中,可以根据需要自行修改;
对于请求:
/login开头,且当前已有token的(数据中心vuex_token字段值非null),将自动在请求头header.token存入已有的token值;对于响应:
response.statusCode非200的,将拦截,弹框提示并抛出异常,可在接口catch中捕获;response.data.code字段的,判断code值:401将拦截并抛出异常,可在接口catch中捕获,建议在拦截器中统一处理;200且非401将拦截,弹框提示并抛出异常,可在接口catch中捕获;200的,将返回response.data,可在接口then中获取;response.data.code字段的,将返回response.data,可在接口then中获取。提示:get请求第一个参数是配置,post请求第一个参数是请求值,第二个才是配置
在/src/api/目录下新建api.js文件,内容如下
1 | |
1 | |
全局过滤器定义在/src/utils/filters.js中,可参照其增加自己的过滤规则,常用定义方式如下
1 | |
因为已经在main.js中定义如下
1 | |
所以页面中无需引入,如下直接使用
1 | |
效果:当sex为0,页面输出男;当sex为1,页面输出女
源码地址:https://github.com/dr34m-cn/uniapp-demo
框架后期或有更新,请以源码中README.md文档为准
本通用框架基于uniapp与uView UI 2.0.31,封装了日常开发中最常用的接口请求、数据中心、环境配置等操作,上手即用。
1 | |
其他平台构建,例如快应用、支付宝小程序等详见uniapp官方文档
修改/src/manifest.json,例如修改前缀为/h5如下
1 | |
更多配置详见uniapp官方文档
配置文件在/src/config/index.js
1 | |
其他平台运行,例如快应用、支付宝小程序等详见uniapp官方文档
通用配置请放在/src/config/index.js中,例如后端地址。
数据中心统一管理需要在全局使用的数据,可以临时存储(h5刷新页面、小程序/app退出等操作数据就会丢失)或者持久化存储。
在这里定义和存储的数据是全局动态响应的,这让您无需繁琐地写监听方法。
配置文件在/src/store/index.js,建议命名为vuex_开头,以便与页面数据区分避免冲突。
直接在/src/store/index.js中定义,如下边的vuex_tmp
1 | |
在/src/store/index.js中定义,并写入saveStateKeys中,如下边的vuex_token,定义的时候格式为vuex_token: lifeData.vuex_token ? lifeData.vuex_token : null
1 | |
<template>中取值{{ vuex_token }}App.vue页面)<script>中取值this.vuex_tokenvm.vuex_token可以设定值的类型为基本数据类型和可以进行序列化的对象/列表等。
1 | |
接口基于luch-request,uView对其简单封装,本示例使用的是uView封装后的,对最常用的场景做了说明,更详细的文档见uView的http请求
接口拦截器在/src/utils/request.js中,可以根据需要自行修改;
对于请求:
/login开头,且当前已有token的(数据中心vuex_token字段值非null),将自动在请求头header.token存入已有的token值;对于响应:
response.statusCode非200的,将拦截,弹框提示并抛出异常,可在接口catch中捕获;response.data.code字段的,判断code值:401将拦截并抛出异常,可在接口catch中捕获,建议在拦截器中统一处理;200且非401将拦截,弹框提示并抛出异常,可在接口catch中捕获;200的,将返回response.data,可在接口then中获取;response.data.code字段的,将返回response.data,可在接口then中获取。提示:get请求第一个参数是配置,post请求第一个参数是请求值,第二个才是配置
在/src/api/目录下新建api.js文件,内容如下
1 | |
1 | |
全局过滤器定义在/src/utils/filters.js中,可参照其增加自己的过滤规则,常用定义方式如下
1 | |
因为已经在main.js中定义如下
1 | |
所以页面中无需引入,如下直接使用
1 | |
效果:当sex为0,页面输出男;当sex为1,页面输出女