Kitaran hayat yang baru ditambah ialah: 1. getDerivedStateFromProps, digunakan untuk mengawal proses keadaan pengemaskinian prop; 2. getSnapshotBeforeUpdate, digunakan untuk membaca data DOM terkini;
Persekitaran pengendalian tutorial ini: sistem Windows 7, bertindak balas versi 17.0.1, komputer Dell G3.
Apabila mempelajari React, kitaran hayat adalah sangat penting Setelah kita memahami setiap komponen kitaran hayat, ia akan membantu untuk menulis komponen berprestasi tinggi
Kitaran hayat React terbahagi kepada tiga keadaan 1 . Permulaan 2. Kemas kini 3. Pemusnahan
1 🎜>
Dokumen tapak web rasmi menunjukkan bahawa kod yang menggunakan kitaran hayat ini akan lebih berkemungkinan menghasilkan pepijat dalam versi tindak balas akan datang, terutamanya untuk versi pemaparan tak segerak Sejak tak segerak mekanisme pemaparan akan diterima pakai pada masa hadapan, ia akan menjadi Fungsi cangkuk kitaran hayat dikeluarkan dalam versi 17 componentWillMount componentWillRecieveProps componentWIllUpdate2. Kitaran hayat baharu
getDerivedStateFromProps(nextProps, prevState)
static getDerivedStateFromProps(nextProps, prevState) { const {type} = nextProps; // 当传入的type发生变化的时候,更新state if (type !== prevState.type) { return { type, }; } // 否则,对于state不进行任何操作 return null; }
getSnapshotBeforeUpdate()
Jika komponen mentakrifkan kitaran hayat componentDidCatch, ia akan menjadi sempadan ralat (sempadan ralat akan ditangkap semasa rendering, dalam kaedah kitar hayat dan Ralat dalam pembina keseluruhan pokok di bawahnya, componendDidCatch(error, info)
3. Penggunaan asas
[Cadangan berkaitan:
Tutorial video Redisclass A extends React.Component { // 用于初始化 state constructor() {} // 用于替换 `componentWillReceiveProps` ,该函数会在初始化和 `update` 时被调用 // 因为该函数是静态函数,所以取不到 `this` // 如果需要对比 `prevProps` 需要单独在 `state` 中维护 static getDerivedStateFromProps(nextProps, prevState) {} // 判断是否需要更新组件,多用于组件性能优化 shouldComponentUpdate(nextProps, nextState) {} // 组件挂载后调用 // 可以在该函数中进行请求或者订阅 componentDidMount() {} // 用于获得最新的 DOM 数据 getSnapshotBeforeUpdate() {} // 组件即将销毁 // 可以在此处移除订阅,定时器等等 componentWillUnmount() {} // 组件销毁后调用 componentDidUnMount() {} // 组件更新后调用 componentDidUpdate() {} // 渲染组件函数 render() {} }
Atas ialah kandungan terperinci Apakah kitaran hayat tindak balas yang baru ditambah?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!