uni-app:关于小程序开发规范与架构设计的理解

if (env === ‘dev’) {

//开发环境

var ENV_CONFIG = require('@/env/.env.dev.js');

} else if (env === ‘test’) {

//测试环境

var ENV_CONFIG = require('@/env/.env.test.js');

} else if (env === ‘rc’) {

//rc环境

var ENV_CONFIG = require('@/env/.env.rc.js');

} else if (env === ‘prod’) {

//生产环境

var ENV_CONFIG = require('@/env/.env.prod.js');

}

//给环境变量process.uniEnv赋值 使用 process.uniEnv.baseUrl

if (ENV_CONFIG) {

process.uniEnv = {};

for (let key in ENV_CONFIG) {

	process.uniEnv[key] = ENV_CONFIG[key];

}

}




如【.env.test.js】文件,内容如下:



const config = {

baseUrl: 'http://baidu.com',// 主域名

// xmUrl: 'http://test1-baidu.com',// 私网 - 内部测试用

xmUrl: 'https://test-baidu.cn',// 外网映射 - 审核使用

bfUrl: 'http://alpha-baidu.cn',

wxUrl: 'http://wx.baidu.com:8080',

wxServer:'https://wxserver.baidu.cn/WeiXinServer',

environment: 'test' // dev test rc prod

}

module.exports = config;




文件在【main.js】引用:



import ‘@/env/.env.js’




[]( )2.3、API集中管理

------------------------------------------------------------------------------



1、参照官方文档:[API集中管理]( )。  

2、文档中:准备工作、说明、引入、使用,已经描述的很清楚,这里不再赘述。  

如【http.mine.api.js】文件,内容如下:



// 创建 User 模块方法,方法内的方法共享 vm 对象

let Mine = (vm) => {

return {

	// 获取xxx信息

	getAxxxRequest: (params) => {

		const header = {

			'content-type': 'application/x-www-form-urlencoded'

		}// 请求头content-type不设置,默认utf-8格式

		return vm.$u.post(process.uniEnv.xmUrl + '/xxx/xxx/v1.0', params, {})

	},

	

	// 设置xxx信息

	setBxxxRequest: (params) => {

		const header = {

			'content-type': 'application/x-www-form-urlencoded'

		}// 请求头content-type不设置,默认utf-8格式

		return vm.$u.post(process.uniEnv.xmUrl + '/xxx/xxx', params, header)

	},

}

}

// 此处第二个参数vm,就是我们在页面使用的this,你可以通过vm获取vuex等操作,更多内容详见uView对拦截器的介绍部分:

// https://uviewui.com/js/http.html#%E4%BD%95%E8%B0%93%E8%AF%B7%E6%B1%82%E6%8B%A6%E6%88%AA%EF%BC%9F

const install = (Vue, vm) => {

vm.$u.mineApi = Mine(vm)

}

// 抛出当前模块

export default {

install

}




文件在【main.js】引用:



const app = new Vue({

...App

})

import mineApi from ‘@/api/http.mine.api.js’;

Vue.use(mineApi, app);

app.$mount()




注意引用的位置,需要在new Vue得到Vue实例之后。



总结:  

1、API管理:【api/xxx】目录下。  

2、环境配置:【env/xxx】目录下。



[]( )3、分包管理

=========================================================================



1、在【pages.json】文件下添加分包,样式如下:



"subPackages": [{

	// 分包1:我的模块

	"root": "pages/mine",

	"pages": [

		{

			// 我的 - 首页

			"path": "index",

			"style": {

				"navigationStyle": "custom"

			}

		}

	]

},{

	// 分包2:游客模块

	"root": "pages/tourist",

	"pages": [{

			// 游客 - 首页

			"path": "index",

			"style": {

				"navigationStyle": "custom"

			}

		}

	]

}],



2、在添加分包的时候,最好相对应的其他内容也一起做分类处理,方便管理。如:新增api协议文件、pages分包下新增static文件(公共的icon还是要放在公共区域)等。



[]( )4、【uni\_modules】引入第三方组件

==========================================================================================



为提高开发效率,很多组件我们可以借用他人封装好的轮子。借助本项目引用的组件,进行说明:



[]( )4.1、uview-ui 框架

----------------------------------------------------------------------------------



1、[uview-ui的安装]( )  

2、功能:是一款全面兼容nvue的uni-app生态框架,全面的组件和便捷的工具。  

3、注意:配置easycom组件不会实时生效,配置完后,您需要重启HX或者重新编译项目才能正常使用uView的功能。我验证了一下,重启HX好几次才有效,有强迫症的这点需要注意一下。  

4、多种导入方式:



> 4.1、[uView2.0]( )下载插件ZIP,解压后直接导入项目目录中。或者去github上下载导入。  

> 4.2、[uView2.0]( )右边栏点击【使用HBuilder导入插件】,将自动导入到【uni\_modules】文件目录中。  

> 4.3、[uView-npm]( )方式安装。注意直接在【HBuilder】左下角找到【终端】打开,再根据命令行安装,将自动安装到【node\_modules】文件目录中。

> 

> *   注:推荐使用第二种方式。



5、拓展:[什么是uni\_modules?为什么有了node\_modules,还需要再发明一个uni\_modules的轮子?]( )



[]( )4.2、qiun-data-charts

---------------------------------------------------------------------------------------



1、关键词检索:秋云 ucharts echarts 高性能跨全端图表组件  

2、功能说明:高性能图表组件



[]( )4.3、z-paging

-------------------------------------------------------------------------------



1、关键词检索:z-paging  

2、功能说明:下拉刷新、上拉加载更多



[]( )5、图片资源管理

===========================================================================



1、图片资源统一用【xxx@2x.png】大小就可以。  

2、图片压缩:每个图片资源添加都需要压缩一次图片资源,可以节省很大的空间,压缩地址:[tinypng]( )。



3、图片命名规则:



> 规则1(对应功能模块使用的):  

> **分包功能模块(主包:如签到,分包1:如设置,分包2:如游客模式)  

> \_图片类型(图标:icon,背景|大图:view)  

> \_应用页面  

> _功能_  

> 状态(位置、点击、高亮等状态)  

> .png**

> 

> > 示例:sign\_icon\_home\_scan\_click.png、sign\_view\_home\_back\_top.png



> 规则2(多包共用的):  

> common  

> **cn(common的简写)  

> \_图片类型(图标:icon,背景|大图:view)  

> _功能_  

> 状态(位置、点击、高亮等状态)  

> .png**

> 

> > 示例:cn\_icon\_scan\_click.png



4、图片资源是否上传服务器:如果图标资源太大,上传服务器,用链接显示。如果只是几k的小图标,直接放本地,便于开发维护。  

5、添加分包的时候,最好在对应页面路径中新建一个的static文件,存放该分包特有的图片资源。



> **关于图片资源文件的存储:**  

> 由于小程序的资源大小限制,需要把大图放在cdn上,其具体的备份文件为static\_backup 对应的是static的文件。  


**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**

**深知大多数Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

**因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/4bb3ca6099733cec9f154f695ac6ffe4.png)
![img](https://img-blog.csdnimg.cn/img_convert/5c0428bbfa4ef7afc1eb464cf95c4da7.png)
![img](https://img-blog.csdnimg.cn/img_convert/66d3ab2b408f9dfeac8845be5261c896.png)
![img](https://img-blog.csdnimg.cn/img_convert/11dc58205155a815bb095c0365b14fc1.png)
![img](https://img-blog.csdnimg.cn/img_convert/9c76097c6763aa27f5ebf9520b57e834.png)
![img](https://img-blog.csdnimg.cn/img_convert/ecc252d68e97d44ebc3540c9c6785d04.png)
![img](https://img-blog.csdnimg.cn/13f2cb2e05a14868a3f0fd6ac81d625c.png)

**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!**

**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

**如果你觉得这些内容对你有帮助,可以添加V获取:vip204888 (备注Android)**
![img](https://img-blog.csdnimg.cn/img_convert/7353c3cb6b1671e3927b74ed72113e0e.png)



### 尾声

如果你想成为一个优秀的 Android 开发人员,请集中精力,对基础和重要的事情做深度研究。

对于很多初中级Android工程师而言,想要提升技能,往往是自己摸索成长,不成体系的学习效果低效漫长且无助。 整理的这些架构技术希望对Android开发的朋友们有所参考以及少走弯路,本文的重点是你有没有收获与成长,其余的都不重要,希望读者们能谨记这一点。

这里,笔者分享一份从架构哲学的层面来剖析的视频及资料分享给大家梳理了多年的架构经验,筹备近6个月最新录制的,相信这份视频能给你带来不一样的启发、收获。![](https://img-blog.csdnimg.cn/img_convert/071d1688de9f6a226154e20a13335599.webp?x-oss-process=image/format,png)

PS:之前因为秋招收集的二十套一二线互联网公司Android面试真题 (含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。)

![](https://img-blog.csdnimg.cn/img_convert/f7b612650cde7cd8843b52ad50cc0bfe.webp?x-oss-process=image/format,png)

#### 架构篇

**《Jetpack全家桶打造全新Google标准架构模式》**
![](https://img-blog.csdnimg.cn/img_convert/3b6f0b1f15add3652d7d0ff0caaabbdc.webp?x-oss-process=image/format,png)


> **本文已被[CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》]( )收录**

[**一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

Jetpack全家桶打造全新Google标准架构模式》**
[外链图片转存中...(img-8wLxW7dK-1712208365501)]


> **本文已被[CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》]( )收录**

[**一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)

**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值