✅ 本以为过年几天我还是能抽出时间来学习学习,太小看亲戚和小孩子们的热情了…
微信小程序开发 🌲
上一篇文章链接: 微信小程序学习笔记①——安装与测试 [输出Hello World]
下一篇文章链接: 微信小程序学习笔记③——wxml+wxss+js基础入门[样例+解析]
一、页面和主体
● 小程序包含『整体』的 app
文件和多个各自页面的 page
。
● 页面:如下图所示,在 “pages
” 文件夹里即是编写 “页面” 所在的代码区。我在 pages
文件夹下只建立了一个 名为 MyIndex
的 “(页面page
)文件夹”。然后这个文件夹里面有 .wxml
、.wxss
、.js
和 .json
一共 4
样东西。前 3
个东西类似前端的 “三大件”。如下图所示:
● 如果把写一个 “页面” 比作 “创造一只鸟”,那么 .wxml
的作用就是 “搭建鸟的骨架”,.wxss
的作用是 “给鸟填充肉和毛+上色”,但如果就这样的话,这只鸟只能是一个 “摆设”,所以 .js
登场了,它的作用是在鸟执行 “飞” 这个动作时,它会指示让那几块肌肉动来使得鸟能 “飞”。
● “鸟的三大件” 对应到页面上时,是下图这样子解释的:【『页面』里面的 “.json
” 现阶段可以不用管,当涉及到 “父组件和子组件” 的时候会细讲】
文件类型(后缀名) | 是否必需添加 | 作用 |
---|---|---|
.wxml | 是 | 页面结构 |
.wxss | 否 | 页面样式 |
.js | 是 | 页面逻辑 |
.json | 否 | 页面(环境等)配置 |
● 主体:一般小程序都会有多个页面,那怎么管理这些页面之间的联系呢,就需要最外层的 app
系列文件。如下图所示。
●『主体结构』控制着整个小程序得到页面布局,如果有 page
页面没有设置样式/结构(即 wxss
/json
),将会沿用主体结构里面的样式/结构。
● 和『页面』类似,app
系列文件的功能如下:【注:“app
” 这个名字是系统自行取好的】
文件) | 是否必需添加 | 作用 |
---|---|---|
app.wxss | 否 | 小程序公共样式表 |
app.js | 是 | 小程序逻辑 |
app.json | 是 | 小程序公共配置 |
二、小程序公共配置(app.json)
● 在每次运行小程序的时候,编译器都会先去访问并运行 app.json
文件,然后依据里面的内容把整个小程序的公共环境配置好。
◆ 说明一:页面创建直接在 app.json
文件的 pages
里面添加即可(注意书写格式,如上图所示的①。语法如下面的代码框,注意别用中文)。也可以在资源管理器中右键创建文件。【注意,当创建多个页面时,系统初始展示的界面默认时第一个,即 pages/MyIndex
】
"pages": [
"pages/firstPage/index",
"pages/secondPage/index",
"pages/threePage/other"
],
◆ 说明二:app.json
文件里面除了 pages
数组,还有 window
对象。语法如下面的代码框,有点像 Python里面的字典,比如对于 “"navigationBarTitleText": "Weixin"
” 而言,前面的 “"navigationBarTitleText"
” 是 “键(key)”,后面的 “"Weixin"
” 是 “值(value)”,它的意思是 → 上图右边演示框里面的白色的“weixin”这个文本内容。
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#ff1111",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle": "white"
},
● 对于 『全局配置(app.json
)』的详细内容,可以参考官方文档:《微信小程序全局配置(app.json)》,部分配置信息效果展示如下:
● JSON
语法的小结:
① 大括号 {}
为对象,大括号包含的内容表示一个对象
② 中括号 []
为数组,保存一系列的数组元素
③ 数据之间使用英文逗号 ,
隔开,最后一个不用加逗号
④ 使用键值对的方式存储值,即 key:value
的形式
⑤ key
的值要用双引号包含""
⑥ .json
文件里面不能写注释。
三、简单的首页
● 今天我们最后来实现一个简单的首页设计。很多小程序的最下面都有一些『首页』、『我的』等一些图标,如下如所示。这些功能就是通过 tabBar
来实现的(也就是上面的右边那张图),而 tabBar
下面的 icon 图标大小限制为 40KB
。
◆ 对于 icon 图标,这个网站有很多是免费的,也做的很好:iconfont阿里巴巴矢量图标库
◆ 关于 tabBar
的官方文档:《全局配置——tabBar》
● tabBar
的 list
数组至少要求是 2~5
个。其中 pagePath
表示路径,即我们前面创建的页面,text
是内容,iconPath
是图标存储路径(未选中它时),selectedIconPath
也是图标存储路径(选中它时,如上图里面的 “消息”,是被选中的)。
● 样例:设计和 QQ 类似的 tabBar
栏,要求图标的 “选中” 和 “未选中” 图片不同。素材如下:






● 图片存储位置如下:
● app.json
的代码如下:【注,最后三行现阶段可以不用管;.wxml
、.wxss
、.js
等文件可以不用管】
{
"pages": [
"pages/MyIndex/index",
"pages/secondPage/index",
"pages/threePage/other"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#ff1111",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle": "white"
},
"tabBar": {
"list": [
{
"pagePath": "pages/MyIndex/index",
"text": "消息",
"iconPath": "pages/Images/01_消息(未选中).png",
"selectedIconPath": "pages/Images/01_消息(选中).png"
},
{
"pagePath": "pages/secondPage/index",
"text": "联系人",
"iconPath": "pages/Images/02_联系人(未选中).png",
"selectedIconPath": "pages/Images/02_联系人(选中).png"
},
{
"pagePath": "pages/threePage/other",
"text": "我的",
"iconPath": "pages/Images/03_动态(未选中).png",
"selectedIconPath": "pages/Images/03_动态(选中).png"
}
]
},
"style": "v2",
"sitemapLocation": "sitemap.json",
"lazyCodeLoading": "requiredComponents"
}
● 运行结果:
四、参考附录
[1] 微信小程序开发之二 —— 主页面布局与app.json的全局配置
[2]《微信小程序开发指南》
上一篇文章链接: 微信小程序学习笔记①——安装与测试 [输出Hello World]
下一篇文章链接: 微信小程序学习笔记③——wxml+wxss+js基础入门[样例+解析]
⭐️ ⭐️