国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

React-router4路由監聽的實現

2019-11-19 13:19:54
字體:
來源:轉載
供稿:網友

React-router 4

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

問題出發點

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

思路

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

項目目錄結構

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>    )  }}

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

總結

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通榆县| 富蕴县| 肥乡县| 林州市| 高碑店市| 望都县| 北京市| 卓尼县| 鄄城县| 乐至县| 深泽县| 龙海市| 泸溪县| 色达县| 柞水县| 南召县| 新河县| 右玉县| 乐都县| 晴隆县| 富锦市| 房山区| 赤壁市| 武强县| 海南省| 射阳县| 马公市| 蒙城县| 永平县| 阿拉善左旗| 宜君县| 桦南县| 嘉鱼县| 济南市| 余庆县| 清水县| 汤阴县| 修武县| 昌吉市| 收藏| 缙云县|