美文网首页
React路由的使用和页面的跳转

React路由的使用和页面的跳转

作者: 吴高亮 | 来源:发表于2019-03-15 10:37 被阅读0次

    React-Router的中文文档可以参照如下链接: http://react-guide.github.io/react-router-cn/docs/Introduction.html

    • 我们删去src目录下的所有文件,创建index.js文件,内容如下:
    import React from 'react';
    import ReactDOM from 'react-dom';
    import App from './App';
    
    ReactDOM.render(<App/>, document.getElementById('root'));
    

    创建App.js

    import React from 'react';
    import {BrowserRouter as Router,Route} from 'react-router-dom';
    import Login from './login'
    import Home from './page/Home';
    import Page1 from './page/page1';
    import Page2 from './page/page2';
    
    class App extends React.Component{
        constructor(props){
            super(props);
            this.state={
    
            }
        }
        handle=()=>{
            console.log('什么毛病')
        }
        render(){
            return (
                <Router>
                    <div>
                        <button onClick={this.handle}></button>
                        <Route path='/Login' component={Login}/>
                        <Route path='/' component={Home} />
                        <Route path='/Page1' component={Page1}/>
                        <Route path='/Page2' component={Page2}/>
                    </div>
                </Router>
            )
        }
    };
    export default App;
    

    下面来分析一下,在上方的import中,载入了 BrowserRouter as Router 和 Route,其意思就是从react-router-dom
    包中导入Router和Route,BrowserRouter是Router中的一种。
    然后,下面依次引入了Home、Page1、Page2、Page3这四个组件,组件的内容之后会给出。
    在组件的render函数的return里面,我们可以看到一对<Router>标签包含了四个<Route>标签,每个<Route>标签中都包含了path属性和component属性,path 属性用于储存路径,就是网站主页路径后面的内容,假如网站地址是localhost:3000,那么,locahost:3000后面的字符串就是path属性的内容。(注意,Router只能有一个子组件,所以要把所有Route标签用一个div包裹起来)
    然后是 component 属性,其中储存了组件名称,当我们访问特定地址时就会渲染该组件,也可以称其为这一个路由的入口组件,可以由这个组件延伸开来搭建页面。
    Home组件的内容如下(Home.js):

    import React from 'react';
    
    class Home extends React.Component{
    render(){
    return(
    <div>
    <div>This is Home!</div>
    </div>
    );
    }
    }
    
    export default Home;
    

    用于显示div标签中的This is Home!语句。
    Page1-Page3组件类似,内容为:

    import React from 'react';
    
    class Page1 extends React.Component{
    render(){
    return(
    <div>
    <div>This is Page1!</div>
    </div>
    );
    }
    }
    export default Page1;
    

    相关文章

      网友评论

          本文标题:React路由的使用和页面的跳转

          本文链接:https://www.haomeiwen.com/subject/cwakmqtx.html