1.每个页面文件tsx 都必须引入使用的标签且首字母大写
2.引入自定义组件时要使用首字母大写与驼峰命名
3.可以在jsx中随意使用表达式,注意是表达式,if 和 for 不是表达式,也可以在render中声明变量,也就是 要使用if或者 for循环时处理变量时
4.字符串常量的传递
eg:
这两种写法是等价的
5.给属性传值时 如果你没有给值,那就是默认为true
6.jsx的循环语句,较之前的vuex项目还是不太一样的,
eg: render() {
const todos = [‘finish doc’, ‘submit pr’, ‘nag dan to review’]
return (
{ todos.map(todo) =>{ todo } }
)
}
7.条件渲染也是不同的:
eg:
{ showHerder && < Header /> }
8.组件化和props。
taro的组件 ,通过Class类定义一个组件。里面的props接受的值,也不用声明,就可以直接去使用,props中的key值是不允许在子组件中被改变的
- 检查组件的属性 需要配置特殊的propTypes属性,也就是除了你在render中使用的,还需要加一步骤。
import Proptype from ‘prop-types’
Greeting.propTypes = {
name: PropTypes.string
}
10.在CLass中声明变量,可以写在 this.state中,因为这样的话,将来就可以使用this.setState()去更新组件局部状态
正因为this.state和this.setState有特殊意义,所以 由this.state定义的变量 就不要直接去改变 eg: this.state.age = '18' 这样是不会重新渲染组件的 应该这样写: this.setState({ age: '18' })
11.由于this.setState异步的,所以不能在它后面直接打印 你改变的值,
应该用callback
this.setState({
age : ‘19’
},() => {
// 在这里打印你想要的值
})
- taro中的事件绑定
activeLasers = (e) => {
e.stopPropagation() // 阻止冒泡 ,需要明确的指明
// 逻辑代码
}
13.也可以使用bind方式监听函数传参,事件对象写在最后
eg :
activeLasers(name,test,e){
e.stopPropagation()
}
14.也可以使用匿名函数:
eg:
15.任何事件的开头都要以on开头
16.条件渲染 逻辑运算符渲染 三目运算符 枚举条件渲染
17.类函数式组件 普通函数组件