11
12 },
13
14 /**
15 * 生命周期函数–监听页面加载
16 /
17 onLoad: function (options) {
18 app.foo();
19
20 },
21
22 /*
23 * 生命周期函数–监听页面初次渲染完成
24 /
25 onReady: function () {
26
27 },
28
29 /*
30 * 生命周期函数–监听页面显示
31 /
32 onShow: function () {
33 //在每次该界面唤醒时,获取当前页面的调用栈:
34 console.log(getCurrentPages());
35 console.log("当前调用栈中的页面数量: " + getCurrentPages());
36 console.log(getCurrentPages()[getCurrentPages().length - 1] == this);
37 },
38
39 /*
40 * 生命周期函数–监听页面隐藏
41 /
42 onHide: function () {
43
44 },
45
46 /*
47 * 生命周期函数–监听页面卸载
48 /
49 onUnload: function () {
50
51 },
52
53 /*
54 * 页面相关事件处理函数–监听用户下拉动作
55 /
56 onPullDownRefresh: function () {
57
58 },
59
60 /*
61 * 页面上拉触底事件的处理函数
62 /
63 onReachBottom: function () {
64
65 },
66
67 /*
68 * 用户点击右上角分享
69 */
70 onShareAppMessage: function () {
71
72 }
73 })
三.界面层–数据绑定
在程序的开发过程中,界面层提供一种模板机制,可以借助一种特殊的语法来完成数据的绑定,将动态的数据绑定到模板当中,最近将嵌入过后的数据显示到界面中,小程序中使用的是Mustache 语法(双大括号)语法:
1
2
3
7
8
9
10
1 // pages/demo/demo.js
2
3 Page({
4 //为页面提供数据,界面和逻辑之间的桥梁
5 data:{
6 message:“hello world”,
7 person:{
8 name: “张三”,
9 age:25
10 }
11 }
12 })
–数据绑定语法补充,除了在页面标签的内部我们会使用Mustache语法进行输出,在标签的内部,我们也可以使用Mustache语法:
1
2
3
7
8
9
10
14
15
16
17
18
19
20
21
24 复选框1
25 复选框2
26
四.列表渲染
在逻辑层中,很多的情况下都会是一个数组类型的数据(列表数据),那么此时在我们的界面层中就需要使用到列表渲染:
1
4 复选框1
5 复选框2
6
7
8
20
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
五.事件处理
1
3 点击
1 buttonTapHandle: function(e){
2 console.log(“点击按钮打印此条.”);
3 // console.dir()将一个对象以树状的形式打印到控制台,便于我们调试复杂对象
4 console.dir(e);
5 }
六.事件冒泡
1
4
5
6
1 innerHandler: function(){
2 console.log(“触发内部事件”);
3 },
4 outerHandler: function(){
5 console.log(“触发外部事件”);
6 }
七.事件传参
1
8 参数事件
1 handleWithParm(e){
2 console.log(e); //获取当前的点击元素
3 console.log(e.target.dataset); //获取元素上所有data-[xxx]属性的集合
4 }
八.单向数据流
1
4
5
6
7
1 inputHandler: function(e) {
2 //e.detail.value 获取到当前输入的值
3 console.log(e.detail.value);
4 //小程序中的数据绑定,本质上是一次绑定,在绑定完成之后,并不会去监视数据的变化.如果想要得到此次的变化,那么就需要使用setData的方法进行改变
5 //setData是用来改变data数据的,与直接赋值区别在于setData可以通知界面作出变化,而直接赋值的话没有办法实现这一点(早期的JS无法实现)
6 this.setData({
7 inputMessage: "您输入的内容: " + e.detail.value
8 })
9 console.log(this.data.message);
10 }
九.登录页面案例
1
2
3
4 <input class=“username” placeholder=“请输入用户名” style=“border:1px solid #000”
5 value=“{{ username }}” bindinput=“usernameChangeHandler”/>
6 <input class=“password” type=“password” placeholder=“请输入密码” style=“border:1px solid #000”
7 value=“{{ password }}” bindinput=“passwordChangeHandler”/>
8
9
10 登录
11 注册
12
13
1 // pages/login/login.js
2 /* 实现登录界面
3 1. 设计数据的结构(data属性)
4 2. 将数据绑定到指定的元素上
5 */
6 Page({
7 data: {
8 username: “”,
9 password: “”
10 },
11 //用于处理登录按钮点击的事件
12 buttonLogin: function() {
13 console.log(“执行登录事件”);
14 },
15 //用于处理注册按钮点击的事件
16 buttonRegister: function() {
17 //1. 首先需要知道用户输入了什么
18 console.log(this.data.username + " " + this.data.password);
19 //2. 根据用户输入的值去判断
20 //3. 根据判断的结果做出响应
21 console.log(“执行注册事件”);
22 },
23 //用户输入用户名
24 usernameChangeHandler: function(e) {
25 this.setData({
26 username: e.detail.value
27 })
28 },
29 //用户输入密码
30 passwordChangeHandler: function(e) {
31 this.setData({
32 password: e.detail.value
33 })
34 }
35 })
十.抽象共同的事件处理函数
如我在我们的代码之中为每一个input标签都增加一个事件绑定函数,那么在我们的代码之中,将会存在很多的重复代码,为了避免这样的的情况,我们可以抽象共同的事件处理函数:
1
2
3
4 <input class=“username” placeholder=“请输入用户名” style=“border:1px solid #000”
5 value=“{{ username }}” bindinput=“inputChangeHandler” data-name=“username”/>
6 <input class=“password” type=“password” placeholder=“请输入密码” style=“border:1px solid #000”
7 value=“{{ password }}” bindinput=“inputChangeHandler” data-name=“password”/>
8
9
10 登录
11 注册
12
13
1 // pages/login/login.js
2 /* 实现登录界面
3 1. 设计数据的结构(data属性)
4 2. 将数据绑定到指定的元素上
5 */
6 Page({
7 data: {
8 username: “”,
9 password: “”
10 },
11 //用于处理登录按钮点击的事件
12 buttonLogin: function() {
13 console.log(this.data.username + " " + this.data.password);
14 console.log(“执行登录事件”);
15 },
16 //用于处理注册按钮点击的事件
17 buttonRegister: function() {
18 //1. 首先需要知道用户输入了什么
19 console.log(this.data.username + " " + this.data.password);
20 //2. 根据用户输入的值去判断
21 //3. 根据判断的结果做出响应
22 console.log(“执行注册事件”);
23 },
24 //用户输入用户名
25 // usernameChangeHandler: function(e) {
26 // this.setData({
27 // username: e.detail.value
28 // })
29 // },
30 //用户输入密码
31 // passwordChangeHandler: function(e) {
32 // this.setData({
33 // password: e.detail.value
34 // }),
35 // console.log(e);
36 // }
37 //抽象上述两个方法,完成事件
38 inputChangeHandler: function(e) {
39 var key = e.target.dataset.name;
40 var value = e.detail.value;
41 var changed = {};
42 changed[key] = value;
43 this.setData(changed);
44 }
45 })
–除此之外,我们还可以使用表单的方式来进行数据的接收,这样可以免除这一些列复杂的操作:
1
2 <input class=“username” placeholder=“请输入用户名” style=“border:1px solid #000”
3 value=“{{ username }}” name=“username” />
4 <input class=“password” type=“password” placeholder=“请输入密码” style=“border:1px solid #000”
5 value=“{{ password }}” name=“password” />
6
7
8 登录
9 注册
10
1 //使用表单提交的方式来完成数据接收
2 loginSubmit: function(e){
3 console.log(e.detail.value);
4 }
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
学习福利
【Android 详细知识点思维脑图(技能树)】
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。文章来源地址https://www.toymoban.com/news/detail-857389.html
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
**,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。
[外链图片转存中…(img-wLlKhnju-1712410245165)]文章来源:https://www.toymoban.com/news/detail-857389.html
网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
到了这里,关于微信小程序--逻辑层与界面层(1)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!