Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Navigasi Secara Pengaturcaraan dalam React Router v2, v3, dan v4?
Dalam banyak aplikasi React, mungkin terdapat senario di mana anda perlu menavigasi secara pemrograman antara laluan berdasarkan syarat tertentu, seperti pengesahan pengguna . Begini cara anda boleh mencapai ini menggunakan penghala tindak balas.
Dalam penghala tindak balas v4, anda boleh menggunakan Komponen Pesanan Tinggi (HOC) withRouter untuk mengakses prop sejarah, termasuk push() untuk menukar laluan secara pemrograman. Begini cara anda boleh melaksanakan ini dalam contoh anda:
import { withRouter } from 'react-router'; class App extends React.Component { componentDidMount() { const isLoggedIn = // Get isLoggedIn from localStorage or API call if (isLoggedIn) { this.props.history.push('/home'); } } render() { // Return login component return <Login />; } } export default withRouter(App);
Dalam versi terdahulu react-router (v2 dan v3), anda boleh menggunakan konteks untuk menukar laluan, seperti yang ditunjukkan dalam contoh berikut:
import React, { Component } from 'react'; import { Router, Route, Link, browserHistory } from 'react-router'; class App extends React.Component { static contextTypes = { router: React.PropTypes.object.isRequired, }; render() { if (isLoggedIn) { this.context.router.push('/home'); } // Return login component return <Login />; } } export default App;
Selain itu, react-router v4 menyediakan cara alternatif untuk menavigasi secara pengaturcaraan:
import { BrowserRouter as Router, Redirect } from 'react-router-dom'; function App() { const isLoggedIn = // Get isLoggedIn from localStorage or API call return ( <Router> {isLoggedIn ? <Redirect to='/home' /> : <Login />} </Router> ); } export default App;
import { browserHistory } from 'react-router'; componentDidMount() { const isLoggedIn = // Get isLoggedIn from localStorage or API call if (isLoggedIn) { browserHistory.push('/home'); } }
Perlu diingat bahawa pendekatan optimum untuk aplikasi anda mungkin bergantung pada khusus anda keperluan dan asas kod.
Atas ialah kandungan terperinci Bagaimana untuk Navigasi Secara Pengaturcaraan dalam React Router v2, v3, dan v4?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!