}
})
view中的内容为 3 + 3 + d
- 逻辑判断
- 字符串运算
{{“hello” + name}}
Page({
data: {
name: ‘MINA’
}
})
1.1.5、修改数据
Page({
/**
- 页面的初始数据
*/
data: {
msg: ‘大林’
},
/**
- 生命周期函数–监听页面加载
*/
onLoad: function (options) {
console.log(this); // this代表当前页面的实例对象
(); // 大林
// 修改 msg 的状态数据,语法
({
msg: ‘修改之后的大林’
})
},
}
onLoad: function (options) {
(this); // this代表当前页面的实例对象
(); // 大林
// 修改 msg 的状态数据,语法
setTimeout(()=>{
({
msg: ‘修改之后的大林’
})
},2000)
},
如果我们使用定时器延时 2s 然后进行修改,那么 2s 后依然会修改数据
1.2、条件渲染
1.2.1、wx:if
- 使用
wx:if=""
来判断是否需要渲染该代码块:
大林1
大林2
--------------
大林3
大林4
也可以用 wx:elif
和 wx:else
来添加一个 else 块:
周一
周二
周三
周四
周五
周六
错误
1.2.3、block wx:if
-
因为
wx:if
是一个控制属性,需要将它添加到一个标签上。 -
如果要一次性判断多个组件标签,可以使用一个
<block/>
标签将多个组件包装起来,并在上边使用wx:if
控制属性。
view1
view2
view3
注意: <block/>
并不是一个组件,它仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。
1.3、列表渲染
1.3.1、wx:for
-
在组件上使用
wx:for
控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。 -
默认数组的当前项的下标变量名默认为
index
,数组当前项的变量名默认为item
{{index}}|{{item}}
Page:({
data: {
listArr:[“java”,“Go”,“web”,“python”,“C++”]
}
})
-
使用
wx:for-index
可以指定当前元素的变量名 -
使用
wx:for-item
可以指定当前元素的变量名
{{i}}|{{item}}
如果我们 data 中的数据是对象类型
Page:({
data: {
listObj: [
{
title:“标题”,
time:“2021-09-18”
},{
title:“标题2”,
time:“2021-09-18”
},{
title:“标题3”,
time:“2021-09-18”
}
]
}
})
1.3.2、wx:key
-
我们在使用
wx:for
时,最好加一个wx:key='*this'
-
或者加一个
wx:key="index"
2、WXSS样式
==========================================================================
2.1、小程序适配方案
-
小程序适配单位:rpx (responsive pixel 响应式像素单位)
-
规定任何屏幕下宽度为 750rpx
-
在iPhone 6 下 1rpx = 0.5px,小程序会根据屏幕的宽度不同自动计算 rpx 值的大小
-
我们一般设计规范都是依据 iPhone 来设计的,也就是说平时 UI 设计师给出的 1px 我们写代码时要写 0.5rpx。(也就是用 px / 2 来得到我们对应的 rpx 大小)。
2.2、样式导入
使用@import
语句可以导入外联样式表,@import
后跟需要导入的外联样式表的相对路径,用;
表示语句结束。
/** **/
.small-p {
padding:5px;
}
/** **/
@import “”;
.middle-p {
padding:15px;
}
2.3、内联样式
框架组件上支持使用 style、class 属性来控制组件的样式。
- style:静态的样式统一写道 class 中。
- class:用于指定样式规则,其属性值是样式规则中类选择器名(样式类名)的集合,样式类名不需要带上
.
,样式类名之间用空格分隔。
目前支持的选择器有:
| 选择器 | 样例 | 样例描述 |
| — | — | — |
| .class | .intro
| 选择所有拥有 class=“intro” 的组件 |
| #id | #firstname
| 选择拥有 id=“firstname” 的组件 |
| element | view
| 选择所有 view 组件 |
| element, element | view, checkbox
| 选择所有文档的 view 组件和所有的 checkbox 组件 |
| ::after | view::after
| 在 view 组件后边插入内容 |
| ::before | view::before
| 在 view 组件前边插入内容 |
需要注意的是小程序是不支持通配符 *
3、事件
======================================================================
事件分为冒泡事件和非冒泡事件:
-
冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
-
非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。
冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
例如:我们使用 bindtap
来绑定事件
Page({
clickParent(){
(“Parent”)
},
clickChild(){
(“child”)
},
})
如果我们使用 catchtap
来绑定事件
Page({
clickParent(){
(“Parent”)
},
clickChild(){
(“child”)
},
})
总结:
- bind 绑定:事件绑定不会阻止冒泡事件向上冒泡
- catch 绑定:事件绑定可以阻止冒泡事件向上冒泡
3.1、事件分类
事件分为冒泡事件和非冒泡事件:
-
冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递。
-
非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递。
WXML的冒泡事件列表:
| 类型 | 触发条件 |
| — | — |
| touchstart | 手指触摸动作开始 |
| touchmove | 手指触摸后移动 |
| touchcancel | 手指触摸动作被打断,如来电提醒,弹窗 |
| touchend | 手指触摸动作结束 |
| tap | 手指触摸后马上离开 |
| longpress | 手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发 |
| longtap | 手指触摸后,超过350ms再离开(推荐使用longpress事件代替) |
| transitionend | 会在 WXSS transition 或 动画结束后触发 |
| animationstart | 会在一个 WXSS animation 动画开始时触发 |
| animationiteration | 会在一个 WXSS animation 一次迭代结束时触发 |
| animationend | 会在一个 WXSS animation 动画完成时触发 |
| touchforcechange | 在支持 3D Touch 的 iPhone 设备,重按时会触发 |
- 官方文档:/miniprogram/dev/framework/view/wxml/
3.2、点击事件bindtap
我们如果想给一个组件定义点击事件,就要用到bindtap,我们给一个组件绑定点击事件的语法如下。
点我
我们给一个组件定义点击事件,主要是给组件定义一个 bindtap=“事件名”,然后再js页面里定义和事件名一样的函数即可。
Page({
click(){
(“点击了按钮”);
},
})
3.3、获取用户输入信息bindinput
- 在wxml里定义好bindinput事件以后,在js页面再定义一个和事件名一样的函数即可。
Page({
getContent(options){
(options);
(); // 获取输入框的内容
}
})
如果我们前端传递一个 data-title 的数据,都存在事件对象的 currentTarget 里面(data-x 属性是H5里面特有的)
按钮
3.4、修改数据
- 如果要修改 data 里面的数据,必须使用
({message:'修改之后的数据'},callback)
{{name}}
Page({
data: {
name: ‘大林’
},
click(res){
// 修改数据
({
name: ‘小林’
})
},
})
4、API
=======================================================================
API 非常之多,我们也没有必要每一个都学,来看下我们常用的。
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
Docker步步实践
目录文档:
①Docker简介
②基本概念
③安装Docker
④使用镜像:
⑤操作容器:
⑥访问仓库:
⑦数据管理:
⑧使用网络:
⑨高级网络配置:
⑩安全:
⑪底层实现:
⑫其他项目:
5257)]
[外链图片转存中…(img-omA9IAoe-1710756715257)]
[外链图片转存中…(img-uoHJu2jV-1710756715258)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-e46IXmsl-1710756715258)]
Docker步步实践
目录文档:
[外链图片转存中…(img-uATsSiUv-1710756715258)]
[外链图片转存中…(img-uA3aWZDg-1710756715259)]
①Docker简介
②基本概念
③安装Docker
[外链图片转存中…(img-mi4wnN4R-1710756715259)]
④使用镜像:
[外链图片转存中…(img-quYo177A-1710756715259)]
⑤操作容器:
[外链图片转存中…(img-xo9ScqVi-1710756715260)]
⑥访问仓库:
[外链图片转存中…(img-8GLUzMIj-1710756715260)]
⑦数据管理:
[外链图片转存中…(img-4kioLGFj-1710756715260)]
⑧使用网络:
[外链图片转存中…(img-v32XYQKk-1710756715261)]
⑨高级网络配置:
[外链图片转存中…(img-sFqEBpxU-1710756715261)]
⑩安全:
[外链图片转存中…(img-Da28ooSn-1710756715261)]
⑪底层实现:
[外链图片转存中…(img-HDFcDU9l-1710756715262)]
⑫其他项目:
[外链图片转存中…(img-q2DQY3uR-1710756715262)]
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录