React路由原生js來實現
import React from react
import ReactDOM from react-dom
class Home extends React.Component{
render(){
return (<div>
<h3>我是主頁組件</h3>
</div>)
}
}
class About extends React.Component{
render(){
return (<div>
<h3>我是關於組件</h3>
</div>)
}
}
class App extends React.Component{
constructor(){
super()
this.state={
hash:window.location.hash.substring(1)
}
}
componentWillMount(){
window.addEventListener(hashchange,()=>{
this.setState({
hash:window.location.hash.substring(1)
})
},false)
}
render(){
let RouterView=null
switch(this.state.hash){
case /home:
RouterView=<Home/>
break;
case /about:
RouterView=<About/>
break;
default:
RouterView=<Home/>
break
}
return (<div>
<h3>我是路由</h3>
<ul>
<li><a href=#/home>主頁</a></li>
<li><a href=#/about>關於</a></li>
</ul>
{RouterView}
</div>)
}
}
ReactDOM.render(<App/>,document.getElementById(root))
1,通過location.hash來獲取hash值,然後React組件的生命同期來設置狀態,從而來設置hash的改變來對應的組件,從而來實現路由。
推薦閱讀:
※AngularJS搭配什麼後端框架比較合適?
※哪位給個國內應用了angular.js框架的網站或者應用?
※請問 React 和 Angular 各有什麼優缺點,各自又適合什麼開發場景?
※angularjs許可權細粒度怎麼做到按鈕級別?
※知乎網站 OAuth 登錄彈窗是怎麼設計的?