React 路由


## 路由
参考地址:https://reacttraining.com/react-router/web/guides/quick-start
 

1.安装 路由   npm install react-router-dom --save

2.BrowserRouter和HashRouter区别
    1.表现形式不同:BrowserRouter:/  HashRouter:/#/     指的是具体浏览器访问 是 xxxx/login 还是 xxxx/#/login
    2.打包发布的时候,如果是BrowserRouter,我们需要后台做重定向处理,否则刷新访问会出现404

路由第一讲:基本示例 通过url直接访问地址,进行路由

目录结构

Home文件内容

import React from "react"

export default class Home extends React.Component {
    render() {
        return (
            <div>
                Home
            </div>
        )
    }
}

news文件内容 

import React from "react"

export default class News extends React.Component {
    render() {
        return (
            <div>
                News
            </div>
        )
    }
}

app.js

import React from 'react';

import { BrowserRouter as Router, Route } from 'react-router-dom'

import Home from './views/Home'
import News from './views/News'

class App extends React.Component {
  render() {
    return (
      <Router>
        <Route path="/home" component={Home}></Route>
        <Route path="/news" component={News}></Route>
      </Router>
    );
  }
}

export default App;

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';

ReactDOM.render(<App />, document.getElementById('root'));

启动项目以后就可以根据具体的路径访问到具体的内容了

路由第二讲:通过Link的方式进行跳转

基于上面的文件目录再添加两个文件 

index.jsx

import React from 'react'
import "./style.css"
import { Link } from 'react-router-dom'
export default class Nav extends React.Component {
    render() {
        return (
            <div className="nav">
                <ul>
                    <li>
                        <Link to="/news">新闻</Link>
                    </li>
                    <li>
                        <Link to="/home">首页</Link>
                    </li>
                </ul>
            </div>

        )
    }
}

style.css

.nav ul{
    overflow: hidden;
    clear: both;
}

.nav ul li{
    float: left;
    margin: 0 20px;
}

.active{
    color:red;
}

修改Home.jsx和 News.jsx 引入文件

import React from "react"
import Nav from "../components/Nav"
export default class Home extends React.Component {
    render() {
        return (
            <div>
                <Nav />
                Home
            </div>
        )
    }
}

配置完成启动以后,在这两个页面的会展示两个按钮,可以跳转到不同的页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值