最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

React-router4路由監(jiān)聽的實現

來源:懂視網 責編:小采 時間:2020-11-27 22:10:31
文檔

React-router4路由監(jiān)聽的實現

React-router4路由監(jiān)聽的實現:React-router 4 React Router4是一個純React重寫的包,現在的版本中已不需要路由配置,一切皆組件。 問題出發(fā)點 最近在一個新的H5項目中使用了react router 4 (react-router-dom: ^4.2.2),項目中的一部分頁面是需要給app客戶端的同學
推薦度:
導讀React-router4路由監(jiān)聽的實現:React-router 4 React Router4是一個純React重寫的包,現在的版本中已不需要路由配置,一切皆組件。 問題出發(fā)點 最近在一個新的H5項目中使用了react router 4 (react-router-dom: ^4.2.2),項目中的一部分頁面是需要給app客戶端的同學

React-router 4

React Router4是一個純React重寫的包,現在的版本中已不需要路由配置,一切皆組件。

問題出發(fā)點

最近在一個新的H5項目中使用了react router 4 ("react-router-dom": "^4.2.2"),項目中的一部分頁面是需要給app客戶端的同學使用,這樣H5項目中的title就不能一成不變,需要顯示對應頁面的title,所以,我們就需要去監(jiān)聽路由變動來更改title。

思路

在react中,例如:在父路由中有兩個子路由,兩個子路由組件的內容都屬于父路由中的一部分,通過切換子路由來顯示不同內容,這種情況下,父組件中的生命周期函數componentWillUpdate都會在切換子路由時被觸發(fā)。按照這個思路結合react-router 4一切皆組件的特性,我們可以用一個IndexPage組件來放置所有的一級路由(其他多級路由就可以放到對應一級路由組件中),當我們切換路由是,就可以在這個IndexPage組件中實時監(jiān)聽路由的變動了。

項目目錄結構

src/app.js

...
export default class App extends Component {
 render() {
 return (
 <Router>
 <Route path="/" component={IndexPage}/>
 </Router>
 )
 }
}

src/pages/index.js

...
export default class IndexPage extends Component {
 componentDidMount() {
 this.updateTitle(this.props);
 }

 componentWillUpdate(nextProps) {
 this.updateTitle(nextProps);
 }

 updateTitle = (props) => {
 routes.forEach(route => {
 if (route.path === props.location.pathname) {
 document.title = route.title;
 }
 })
 }
 render() {
 return (
 <div className="index-page">
 <Switch>
 ...
 項目一級路由
 ...
 </Switch>
 </div>
 )
 }
}

在這個組件中,當路由變動,我們都能實時監(jiān)聽,獲取路由來改變title

總結

利用react-router 4一切皆組件的特性和生命周期函數來監(jiān)聽路由變動

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

React-router4路由監(jiān)聽的實現

React-router4路由監(jiān)聽的實現:React-router 4 React Router4是一個純React重寫的包,現在的版本中已不需要路由配置,一切皆組件。 問題出發(fā)點 最近在一個新的H5項目中使用了react router 4 (react-router-dom: ^4.2.2),項目中的一部分頁面是需要給app客戶端的同學
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top