API komponen bertindak balas
Dalam bab ini kita akan membincangkan API Komponen Reaksi. Kami akan menerangkan 7 kaedah berikut:
Tetapkan keadaan: setState
Ganti keadaan: replaceState
Tetapkan set atributProps
Ganti atribut replaceProps
Kemas kini paksa: forceUpdate
Dapatkan Nod DOM: findDOMNode
Tentukan status pemasangan komponen: isMounted
Tetapkan keadaan: setState
setState(object nextState[, function callback])
Parameter huraian
nextState, keadaan baharu yang akan ditetapkan, yang akan digabungkan dengan keadaan semasa
panggilan balik, parameter pilihan, fungsi panggil balik. Fungsi ini akan dipanggil selepas setState berjaya ditetapkan dan komponen dipaparkan semula.
Gabungkan nextState dan keadaan semasa, dan paparkan semula komponen. setState ialah kaedah utama untuk mencetuskan kemas kini UI dalam fungsi pengendalian acara React dan meminta fungsi panggil balik.
Mengenai setState
Anda tidak boleh mengubah suai keadaan melalui this.state di dalam komponen, kerana keadaan akan diganti selepas memanggil setState().
setState() tidak segera menukar this.state, tetapi mencipta keadaan yang akan diproses. setState() tidak semestinya segerak Untuk meningkatkan prestasi, React akan melaksanakan keadaan dan pemaparan DOM dalam kelompok.
setState() akan sentiasa mencetuskan lukisan semula komponen melainkan beberapa logik pemaparan bersyarat dilaksanakan dalam shouldComponentUpdate().
Instance
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>php中文网 React 实例</title> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react.js"></script> <script src="http://static.php.cn/assets/react/react-0.14.7/build/react-dom.js"></script> <script src="http://static.php.cn/assets/react/browser.min.js"></script> </head> <body> <div id="message" align="center"></div> <script type="text/babel"> var Counter = React.createClass({ getInitialState: function () { return { clickCount: 0 }; }, handleClick: function () { this.setState(function(state) { return {clickCount: state.clickCount + 1}; }); }, render: function () { return (<h2 onClick={this.handleClick}>点我!点击次数为: {this.state.clickCount}</h2>); } }); ReactDOM.render( <Counter />, document.getElementById('message') ); </script> </body> </html>
Run instance »
Klik butang "Run Instance" untuk melihat instance dalam talian
Dalam contoh, mengklik teg h2 meningkatkan pembilang klik sebanyak 1.
Ganti keadaan: replaceState
replaceState(object nextState[, function callback])
nextState, keadaan baharu yang akan ditetapkan, yang akan menggantikan keadaan semasa .
panggilan balik, parameter pilihan, fungsi panggil balik. Fungsi ini akan dipanggil selepas replaceState berjaya ditetapkan dan komponen dipaparkan semula. Kaedah
replaceState() adalah serupa dengan setState(), tetapi kaedah tersebut hanya akan mengekalkan keadaan dalam nextState . Tetapkan sifat: setProps
setProps(object nextProps[, function callback])
nextProps
- , keadaan sifat baharu yang akan ditetapkan akan sama seperti semasa
- props
Gabung
panggilan balik , parameter pilihan, fungsi panggil balik. Fungsi ini akan dipanggil selepas - setProps
berjaya ditetapkan dan komponen dipaparkan semula. Tetapkan sifat komponen dan tunjukkan semula komponen.
adalah bersamaan dengan aliran data komponen, yang sentiasa diturunkan daripada komponen induk kepada semua komponen anak. Apabila menyepadukan dengan aplikasi JavaScript luaran, kami mungkin perlu menghantar data kepada komponen atau memberitahu komponen
React.render()bahawa ia perlu dipaparkan semula Anda boleh menggunakan setProps(). . Untuk mengemas kini komponen, saya boleh memanggil React.render() sekali lagi pada nod, atau saya boleh menukar sifat komponen melalui kaedah
setProps()untuk mencetuskan komponen untuk membuat semula. Ganti sifat: replaceProps
replaceProps(object nextProps[, function callback])
nextProps
- , sifat baharu yang akan ditetapkan, yang akan menggantikan
- props semasa
.
panggilan balik , parameter pilihan, fungsi panggil balik. Fungsi ini akan dipanggil selepas - replaceProps
berjaya ditetapkan dan komponen dipaparkan semula. Kaedah
replaceProps() adalah serupa dengan
, tetapi ia akan memadamkan rreee asal kemas kini paksa : forceUpdate
propsPerihalan parameter
panggilan balik
- , parameter pilihan, fungsi panggil balik. Fungsi ini akan dipanggil selepas kaedah komponen
- render()
dipanggil. Kaedah forceUpdate() akan menyebabkan komponen memanggil kaedah render() sendiri untuk memaparkan semula komponen, dan subkomponen komponen juga akan memanggil render() mereka sendiri. Walau bagaimanapun, apabila komponen itu dipaparkan semula, this.props dan this.state masih akan dibaca Jika keadaan tidak berubah, React hanya akan mengemas kini DOM.
Kaedah forceUpdate() sesuai untuk melukis semula komponen selain daripada this.props dan this.state (contohnya: selepas mengubah suai this.state Kaedah ini digunakan untuk memberitahu React bahawa render() perlu dipanggil
Secara umum, anda harus cuba mengelak daripada menggunakan forceUpdate() dan hanya membaca keadaan daripada this.props dan this.state dan minta React mencetuskan panggilan render().
Dapatkan nod DOM: findDOMNode
forceUpdate([function callback])
Nilai pulangan: elemen DOM DOMElement
Jika komponen telah dipasang dalam DOM , kaedah ini mengembalikan elemen DOM penyemak imbas tempatan yang sepadan. Apabila membawa mengembalikan null atau false, this.findDOMNode() juga akan mengembalikan null. Kaedah ini berguna apabila membaca nilai daripada DOM, seperti mendapatkan nilai medan borang dan melakukan beberapa operasi DOM.
Tentukan status pemasangan komponen: isMounted
DOMElement findDOMNode()
Nilai pulangan: true atau false, yang menunjukkan komponen Sama ada ia telah dipasang dalam kaedah DOM
isMounted() digunakan untuk menentukan sama ada komponen telah dipasang dalam DOM. Kaedah ini boleh digunakan untuk memastikan setState() dan forceUpdate() tidak akan salah apabila dipanggil dalam senario tak segerak.
Rujukan untuk artikel ini: http://itbilu.com/javascript/react/EkACBdqKe.html