1、Taro简介 Taro是一套遵循React语法规范的多端开发解决方案。 使用Taro只需要书写一套代码,再通过Taro的编译工具,将源代码分别编译出,可以在不同端(微信小程序,h5,Rn等)运行的代码。 以react的语法的地址 taro-docs.jd.com/taro/docs/r…
注意点:安装中遇到的问题 使用npm安装出错 清除缓存:npm cache clean --force 或 npm cache verify 使用淘宝镜像:cnpm install -g @tarojs/cli
如果安装过程出现sass相关的安装错误
执行命令:npm install -g mirror-config-china
taro开发中需要用到的生命周期
import { View, Text } from '@tarojs/components'
import './index.scss'
export default class Index extends Component {
state = {
name: '111111111',
text: '张三'
}
componentWillMount () {
// 第一次在渲染之前执行 只执行一次
}
componentDidMount () {
// 第一次渲染之后执行 只执行一次
this.state.name = '22' // 错误的
this.setState({ name: '3333333' }) // 正确的
// 状态更新时异步的
this.setState({ name: '44444' }, () => {
//通过回调函数可以立刻拿到刚才setState中的name的值
alert(this.state.name)
}) // 正确的
}
componentWillUnmount () {
// 卸载的时候执行 页面跳转的时候执行 只执行一次
}
componentWillUpdate () {
// state 数据将要更新
}
componentDidUpdate () {
// state 数据更新过后
}
componentDidShow () {
// reactjs 中是不存在的 小程序中需要 h5中也就是写了
// 页面显示的时候触发
}
shouldComponentUpdate (nextProps, nextState) {
// 检查此次setState 是否需要进行render调用
// 判断state中数据的状态
// 一般用来多次的setState调用时 提示render的性能
if (nextState.name == '') {
return false
} else {
return true; // 不更新
}
}
componentWillReceiveProps (nextProps) {
// 会在父组件传递给子组件的参数发生改变的时候触发
}
componentDidHide () {
// reactjs 中是不存在的 小程序中需要 h5中也就是写了
// 页面隐藏的时候触发
}
getName () {
return '2222222222'
}
render () {
return (
<View className='index'>
<Text>{this.state.name}</Text>
<Text>{this.state.text}</Text>
</View>
)
}
}
生命周期&state
- 状态更新一定时异步的
- react中的状态更新不一定时异步的,同react一致,更新数据必须调用setState方法,从vue中时直接赋值,但是这里直接赋值时不会更新组件的
父子组件传值以及父组件传递函数给子组件
- 创建子组件,在父组件引入,子组件props接受设置默认值,前提是传给我们得值是undefined,要不然子组件得默认值是不起作用得
子组件得绑定事件
父组件传递值以及函数
注意点: 在react和h5页面中传递函数是可以得,但是在微信小程序中父组件得传递函数是报错得。小程序在处理函数得时候必须加on,为了统一规范,所有得都加on
- 如果使用小写得px 在页面中使用得时候回转成rem
- 但是PX大写得,则不会进行转译
短路表达式 ||
三元表达式 ?
如果数组中存在判断,只可以先处理数据,然后在对数据进行遍历循环
组织事件冒泡;
传值 event永远在后面一位
判断是什么开发环境,环境变量只在开发环境
css写法得注意点:
对全局有效
对数据进行存储
获取数据
设置数据
小程序端和h5端得调试:
- 小程序自定义样式只针对自定义组件,在h5中会被影响,解决方法,尽量设置相同得class名
- 引入得组件要注意不要缺少
安装express,新建一个文件,npm init 创建一个index.js
node index 运行