1、关于函数:
1.1、箭头函数:
声明()=>{} 没有自己的this, this就是上级作用域的上下文
1.2、组件内函数:
声明 函数名(){} 调用: this.函数名()
看哪里调用谁调用的 this就指向谁(不确定this的指向,所以最好用箭头函数包裹,不要考虑改变this指向)
1.3、组件外函数:
声明:function 函数(){} 调用: 函数名()
不要使用this,不确定哪里调用
2、改变区域事件
// 获取图片的宽高 .onAreaChange((OldArea: Area, newArea : Area)=>{ AlertDialog.show({ message: "width:"+JSON.stringify(newArea.width)+"height:"+JSON.stringify(newArea.height) }) })
3、数据
声明数据: 变量名:类型 = 默认值
只会在第一次渲染叶敏时候生效,后续改变数据不会引起页面更新。
@State修饰符 修饰的数据,可以在改变后进行页面的更新。
简单数据类型(string number boolean)和引用数据累心自身及第一层变化时才生效。
如果是超出第一层的变化时监听不到的,解决方法是重新赋值第一层对象。
重新创建对象可以new Class()--->Class 可以通过interface生成(interface2class)--->只需要定义数据的结构,然后生成对应的类即可。
4、双向数据绑定:
- 视图驱动数据(监听改变值的时间,更新数据)
- 数据变化视图@State
优化: 不需要在事件中手动改变值, 用$$ 添加到需要改变的值前面即可
只能修饰基础类型变量,以及@state装饰的变量