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

首頁 > 語言 > JavaScript > 正文

手挽手帶你學React之React-router4.x的使用

2024-05-06 15:42:27
字體:
來源:轉載
供稿:網友

手挽手帶你學React入門三檔,帶你學會使用Reacr-router4.x,開始創建屬于你的React項目

什么是React-router

React Router 是一個基于 React 之上的強大路由庫,它可以讓你向應用中快速地添加視圖和數據流,同時保持頁面與 URL 間的同步。通俗一點就是,它幫助我們的程序在不同的url展示不同的內容。

為什么要用React-router

我們開發的時候,不可能所有的東西都展示在一張頁面上,在業務場景的要求下,我們要根據不同的URL或者不同的哈希來展示不同的組件,這個我們可以稱它為路由。在我們不使用React-router的時候,我們如何去做路由呢?

我在這里給大家舉個例子,不使用React-router,來實現一個簡單路由。

  // App.jsimport React,{Component} from 'react'export default class App extends Component {  constructor(){    super()  // 我們在App.js內部來渲染不同的組件 我們這里采用哈希路由的方式,鑒于React的渲染機制,我們需要把值綁定進入state內部。    this.state={      route:window.location.hash.substr(1)    }  }  componentDidMount() {    // 這里我們通過監聽的方式來監聽哈希的變化,并且來更新state促進視圖更新    window.addEventListener('hashchange', () => {      console.log(window.location.hash.substr(1))     this.setState({      route: window.location.hash.substr(1)     })    })   }  render() {    //在這里我們定義一個RouterView 所有的變化后的組件都會丟到這個RouterView中    let RouterView = App    switch (this.state.route) {      case '/children1':      RouterView = Children        break;      case '/children2':      RouterView = ChildrenTwo        break;      default:      RouterView = Home        break;    }    return (      <div>          <h1>App</h1>        <ul>          <li><a href="#/children1" rel="external nofollow" >children1</a></li>           {/* 點擊更改哈希值 這里觸發我們的監聽 然后修改state來觸發組件的重新傳染 */}          <li><a href="#/children2" rel="external nofollow" >children2</a></li>        </ul>        <RouterView/>      </div>    )  }}// 為了展示效果定義子組件一class Children extends Component{  constructor(){    super()    this.state={          }  }  render(){    return(      <div>        <h1>我是子組件1</h1>              </div>    )  }}// 為了展示效果定義子組件二class ChildrenTwo extends Component{  constructor(){    super()    this.state={        }  }  render(){    return(      <div>        <h1>我是子組件2</h1>      </div>    )  }}// 為了展示效果定義Home組件class Home extends Component{  constructor(){    super()  }  render(){    return(      <h1>我是Home</h1>    )  }}            
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 呼和浩特市| 祁东县| 广灵县| 清涧县| 乌恰县| 南溪县| 体育| 永修县| 荥经县| 扎鲁特旗| 吴忠市| 杭锦旗| 甘谷县| 涿州市| 班戈县| 祁阳县| 吉安市| 科尔| 新化县| 临沭县| 那曲县| 龙泉市| 禄劝| 安平县| 武功县| 龙岩市| 富民县| 苗栗县| 阜城县| 蒙阴县| 五莲县| 陈巴尔虎旗| 肇州县| 南阳市| 齐齐哈尔市| 镇江市| 固始县| 达拉特旗| 南通市| 万山特区| 塘沽区|