zoukankan      html  css  js  c++  java
  • React.js 路由

    点击连接后,跳转过程中url发生变化,页面不实现跳转。这就是React.js路由,那么具体是怎么实现的呢,看代码:

    首先是入口文件也就是index.js文件

    1 import React from 'react';
    2 import ReactDOM from 'react-dom';
    3 import App from './App';
    4 
    5 ReactDOM.render(<App />, document.getElementById('root'));

    在进行接下来的几步操作的时候,你需要先在src目录下面创建一个名为component的文件夹,里面的文件是路由文件。如下图所示

    然后就是App.js文件了,看代码

    import React from 'react';
    import {HashRouter,Route,Link} from 'react-router-dom'
    import Home from './component/Home'
    import News from './component/News'
    import About from './component/About'
    //这是引入路由文件
     
    class App extends React.Component{
        render(){
            return (
            <HashRouter>//HashRouter这个标签只能存在一个
                    <h1>这是根目录</h1>
                    <hr />
                    <Link to="/home/left/11">首页</Link>&nbsp;&nbsp;
                    <Link to="/news/center/12">新闻</Link>&nbsp;&nbsp;//这里的to是url地址
                    <Link to="/about/right/13">关于我们</Link>&nbsp;&nbsp;
                    <hr />
                    <Route path="/home/:type/:id" component={Home}></Route>//这个path是把url的值传给component文件夹下的各个路由文件
                    <Route path="/news/:type/:id" component={News}></Route>
                    <Route path="/about/:type/:id" component={About}></Route>
            </HashRouter>
            )
        }
    }
    export default App//向外暴露

    然后就是各个路由里面的内容了,其实各个路由里面的内容都是差不多的。看代码

    import React from 'react'
    class Home extends React.Component{
        constructor(props){
            super()
            this.state={
                p:props.match.params//这一步是把props.match.params封装给p有利于简化代码。
            }
        }
        render(){
            return(
                <React.Fragment>
                    <h1>首页--{this.state.p.type}--{this.state.p.id}</h1>//这一步是通过接受App.js传过来的url值,并打印到页面上。
                </React.Fragment>
            )
        }
    }
    export default Home//向外暴露

    接下来创建的news.js和About.js里面的内容和上面这一部分代码几乎一致。在此就不一一列出了。

    以上是我对React.js的理解,如有不足,请指出。。。。

  • 相关阅读:
    PAT T1001 Battle Over Cities-Hard Version
    PAT甲级2019冬季考试题解
    L3-016 二叉搜索树的结构
    PAT A1135 Is It A Red Black Tree
    PAT A1114 Family Property
    PAT A1034 Head Of Gang
    PAT A1151 LCA in Binary Tree
    什么是一揽子交易
    子公司自购买日(或合并日)开始持续计算的可辨认净资产(对母公司的价值)与购买日子公司可辨认净资产的公允价值有什么区别
    借少数股东权益,贷少数股东损益
  • 原文地址:https://www.cnblogs.com/yong-2000/p/12096547.html
Copyright © 2011-2022 走看看