课程名称: 前端工程师2022版
课程章节: 小程序基础API
主讲老师:Dell Lee
课程内容:
今天学习的内容包括:
1-1页面级别的配置
index.js文件:业务逻辑开发
index.json文件:配置文件
index.wxml文件:类似于html文件,描述页面结构
Index.wxss文件:类似于css文件,样式文件(页面级别的样式优先于全局,页面级别样式只管当前页面)
全局配置
app.js:全局逻辑
app.json:全局通用配置
app.wxss: 全局样式文件(全局样式文件管理所有页面的样式)
页面级别的配置的优先级大于整个应用级别的配置。
1-2全局配置文件的使用
全局配置文件的作用:
(1)project.config.json:配置项目的一些信息,是否使用es6,一般不会改;
(2)sitemap.json:对页面级别的描述。它的目的可以让我们的小程序在微信里面更容易被搜索到,新加特性;
(3)app.json
(4)对配置的问题可以在 文档—— > 框架 —— > 小程序配置 —— > 全局配置 中查阅文档
2-8页面级别配置项
(1)页面的配置只能配置app.json里类似于window类的配置,且页面级别的配置会覆盖全局配置里window的配置
(2)对配置的问题可以在 文档—— > 框架 —— > 小程序配置 —— > 页面配置 中查阅文档
1-3全局逻辑中生命周期函数
创建一个小程序
1、生命周期函数指的是在某一时刻会自动执行的函数
在小程序启动的时候 自动执行的函数
onlaunch(options){}
options 参数的内容:
1、path---小程序在启动的那一刻 访问的是哪个路径下的文件
2、query---记录了用户id。可识别到是哪个用户访问的??? 可以在哪里配置??(添加编译模式--参数 例如:promoteId=123)
3、scene----表示用户进入小程序的方式 ,使用编号表示,可以修改(添加编译模式--进入场景)
1-4全局方法及数据的定义及调用方式
App({
// 生命周期函数,指的是在某一时刻会自动执行的函数
onLaunch(options) { },
// 在小程序重新展示的时候,自动执行的函数
onShow(options) { },
// 当小程序取消展示的时候,自动执行的函数
onHide(){},
// 当脚本执行错误时,自动执行的函数
onError(msg) { },
// 自定义函数
sayHello() { },
//自定义数据
globalData: { }
})
可以在生命周期函数中调用它
// 创建一个小程序 App({ // 生命周期函数,指的是在某一时刻会自动执行的函数 onLaunch(options) { console.log('onLaunch',options) this.sayHello() }, })
也可以在页面里调用它
Page({ onLoad() { console.log(app.sayHello(),app.globalData,'index') } })
1-5页面级别生命周期函数
Page({ // 页面运行的某个时刻会自动执行的函数 // 页面被加载到内存里的时候,或者页面第一次启动的时候 onLoad() { console.log('onLoad') }, // 页面被加载到内存里的时候,或者页面第一次启动的时候 // 并且页面被渲染完成之后自动执行 onReady() { console.log('onReady') }, // 页面每次被展示的时候自动执行 onShow() { console.log('onshow') }, // 页面每次被取消的时候自动执行 onHide() { console.log('onhide') }, // 每次下拉刷新时执行 onPullDownRefresh() { console.log('onPullDownRefresh') }, // 页面到最底部时会自动执行 onReachBottom(){ console.log('onReachBottom') }, // 当点击分享时自动执行的函数 onShareAppMessage() { console.log('onShareAppMessage'); return{ title:'share', path:'pages/index/index' } }, // 当页面滚动时自动执行的函数 onPageScroll(){ console.log('onPageScroll') } })
1-6页面逻辑层数据定义及与页面的串联
index.js页面
Page({ data:{ name:'daisy' }, changename(){ this.setData({ name:'lee' }) } })
index.wxml页面
<view class="container"> <text class="userinfo-nickname" bindtap="changename">{{name}}</text> </view>
1-7逻辑层中的API
index.js页面
api有很多,参考文档
Page({ onShow() { //发请求 wx.request({ url: 'https://www.fastmock.site/mock/f61155fb8fa5bb1bc6f1723d519546f1/weixin/api/getData', success(res){ console.log(res) } }) } })
1-8视图层的数据绑定
index.wxml页面:
wx:if是销毁Dom让节点不存在
hidden: 是让节点隐藏
<view wx:if="{{showName}}" bindtap="handleTap">{{name}}</view> <checkbox checked="{{true}}"></checkbox> <view hidden="{{!showHelloWorld}}">hello world</view>
index.js页面
Page({ data:{ showName:true, name:'daisy', showHelloWorld:true }, handleTap(){ this.setData({showName:false}) } })
1-9 视图层循环展示内容
index.wxml页面:
①循环展示data里面的users
②因数据里定义了三项内容,所以页面会循环3次,所以会展示三次Hello World
<view wx:for="{{users}}" wx:key="*this">{{item.name}}</view> <block wx:for="{{num}}" wx:key="*this"> <view>hello</view> <view>world</view> </block>
index.js页面:
Page({ data:{ users:[{name:'Lily'},{name:'Tom'}], num:[1,2,3] }, handleTap(){ this.setData({showName:false}) } })
今日收获:抽空复习了一下之前学的小程序,长时间不看又遗忘很多
写成文章也有好处,遇到不会的可以随时来找,如果慕课网的手记能像有道笔记一样,可以直接看到标题就更好了,今日除了复习小程序,剩下的时间都用在解决路由问题,有关路由的问题已经整理成笔记了,以便下次遇到问题能随时翻看
热门评论
老师写的代码,你也写一遍,最好把代码提交到github上,方便工作抄代码。
你不需要记忆代码,你只需要知道什么功能要用啥代码实现,能找到它,能调用它即可,编程是开卷的,互联网是开源的。
相信我,老师是怎么敲的代码,你也跟着敲,做出来就优秀,做出来开发能力就有了,
享受学习,享受生活,祝好~