uniapp与hbuilder介绍、首页布局
- css中的变量
- --变量名:值;
- var(--变量名,默认值)
- 分包的概念
- 能让一个整体的程序分成多分,提高第一次加载的速度,能解耦
- 小程序对分包的规定是:
- 不管是主包还是分包,单个都不能超过2m,总共不能超过20m
- 如何使用分包?
- 在
app.json
里,添加一个配置,这个配置跟pages
这些同级
- 在
- 独立分包:
- 就是可以独立打开,不依赖主包
- 如何变成独立分包?
- independent: true
- 分包的使用原则:
- 主包不能访问分包的资源,但是分包可以访问主包里的资源
- 分包之间的资源互相不能访问
- 独立分包不能访问主包的资源
- 分包预下载:
- 是指可以设置进到某个页面后预先下载某些分包
- 约束:预下载的分包加起来不能超过2m
- 通过配置文件写预下载,跟
subpackage
平级的位置写一个
- 混入:
- behaviors
- 可以把混入对象混入到当前组件里
- 语法
- 先定义一个混入对象,一般放到一个js文件里,并进行暴露
- behaviors
- 插槽
- 跟vue里的差不多
项目介绍
- 见
项目接口与设计稿.md
uni-app介绍
- 是
Dcloud
组织提供的一个使用 Vue.js (opens new window)开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台 - 官方文档地址:
开发工具 - HBuilder
-
如果要使用
uni-app
,官方推荐使用HBuilder
来开发项目 -
HBuilder
是一款代码编辑工具,它功能非常强大,特别是提示功能,强大到令人发指 -
先下载
-
安装
-
- 它是一款绿色软件,即不用安装,只要解压到任意位置,即可使用
-
切换主题
-
切换快捷键方案
HBuilder插件安装 - scss支持
新建uni-app项目
uni-app目录结构说明
一个 uni-app 项目,默认包含如下目录及文件:
- main.js里条件编译的说明
-
- 因为我们此时用的是vue2,所以下面的那段代码完全可以删掉
把项目运行到微信开发者工具
使用git管理项目
- 来到项目根目录新建
.gitignore
文件,内容如下
- 初始化仓库
- 初次提交
- 托管到
码云
-
- 来到 gitee ,新建仓库,然后和本地仓库做关联,然后推送到远程仓库
tabbar - 分支
- 准备
tabbar
分支
tabbar - 四个页面
- 来到
pages
,右键新建页面
,分别创建home
(首页)、cate
(分类)、cart
(购物车)、my
(我的)
tabbar - 配置
- 来到项目的
pages.json
添加tabbar
的配置
tabbar - 修改导航条样式
- 就是来到
pages.json
,修改对应的配置
- 注意:此时会发现,背景颜色设置上去了,但是文字没有上去
- 原因:因为我们新建页码时,它会自动帮我们加配置加到
pages
项,pages项里有局部配置,把标题给设置为空,所以有局部时会用局部的样式,导致全局标题没有生效 - 解决办法:
-
- 把
pages
里每一项的"navigationBarTitleText": ""
全部删掉
- 把
tabbar 分支处理
- tabbar做完了,提交到git
home - 分支准备
配置网络请求
由于平台的限制,小程序项目中不支持 axios,而且原生的 wx.request()
API 功能较为简单,不支持拦截器等全局定制的功能。因此,建议在 uni-app 项目中使用 @escook/request-miniprogram
第三方包发起网络数据请求。
请参考 @escook/request-miniprogram 的官方文档进行安装、配置、使用
官方文档:https://www.npmjs.com/package/@escook/request-miniprogram
- 来项目文件夹,先进行npm的初始化
- 下载插件
- 来到
main.js
导入使用并设置基地址,然后挂载到uni
这个对象上,这样所有地方都能使用
- 为了更好的效果,所以每次需要发请求时弹出加载提示,请求完成就需要关闭加载提示,因此需要准备请求拦截和响应拦截
- 此时发现,请求的代码都写到
main.js
里,会导致main.js里的代码过于臃肿,所以可以抽取到一个独立的js文件里,再来到main.js
做导入即可 - 所以在根目录新建了
utils
文件夹,里面放了一个request.js
,代码就是把上面的代码挪过来
- 来到
main.js
导入即可
home - 轮播图数据请求
- 先来到
pages/home
,声明一个data里的数据叫sliderList
用来保存轮播图数据
- 封装一个获取轮播图数据的方法
- 写一个
onLoad钩子
调用即可
- 知识点总结:
-
- 在页面的
vue文件
中,生命周期钩子还是跟微信小程序的一样(onLoad换成created可以,但是在页面中不推荐)- 但是在
组件
的vue文件
中,生命周期钩子跟vue
的是一样的 - uni是uniapp的顶级对象,wx这个顶级对象有的东西,uni也有
- 但是在
- 在页面的
home - 轮播图渲染与样式调节
- 直接输入
swiper
按回车,帮你生成一坨,然后用v-for
进行渲染
- 写个image的样式
home- 获取导航数据
- 声明data保存数据
- 封装方法
- 调用方法
home - 导航数据渲染与样式
- 用大盒子包起来,为了日后跳转每个图片也再包小盒子
- 样式:大盒子用弹性布局,然后图片给宽高
配置分包
- 分包原则:
-
- tabbar一定放到主包(tabbar对应的页面也最好放到主包)
- 其他页面就可以放到分包里
- tabbar一定放到主包(tabbar对应的页面也最好放到主包)
- 分包好处:
-
- 提高加载速度
- 为了能够成功发布小程序(官方对小程序每个包限制为2m,全部放到主包可能会超限)
- 提高加载速度
- 步骤:
-
- 来到项目根目录新建放分包的文件夹,名字叫
subpkg
- 来到
pages.json
配置分包的根路径
- 来到项目根目录新建放分包的文件夹,名字叫
-
- 然后对着
subpkg
右键选择新建页面
,输入名字叫goods_detail
,那么默认就会帮我们自动在pages.json里
配置好分包的路径,对应选择如下图
- 然后对着
home - 点击轮播图进入商品详情页
- 回到
home
找到轮播图的image
,给他包一个navgator,然后用url指定跳转,这里需要拼接参数,传递商品的id过去
home - 点击第一个分类切换到分类页
- 给每个
导航数据
加点击事件,点击事件需要传入当前的数据(item)
- 然后在方法里判断是不是分类,如果是则切换到
分类
的tabbar
页面
home - 获取楼层区域数据
- 声明数据
- 封装方法
- onLoad里调用
home - 渲染楼层标题图片
- 结构如下
home - 渲染楼层图片
- 结构如下
- 说明:本代码跟上面的标题部分
- 核心思路是:一左一右两个区域,左边写死下标0的图片,然后右边是 下标1-4的图片
- 核心布局思路是:弹性布局
__EOF__

本文作者:Sternstunde
本文链接:https://www.cnblogs.com/strundent/p/17078324.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/strundent/p/17078324.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~