Demo
的最外侧包裹了一个
或
样式文件扔public/css下,在index.html里引入即可
,点击访问 bootstrap.css 样式文件
import React from 'react';
import ReactDOM from 'react-dom/client';
import { BrowserRouter } from 'react-router-dom'
import App from './App';const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
);
import React, { Component } from 'react'
import { Link, Route } from 'react-router-dom'
import About from './components/About'
import Home from './components/Home'export default class App extends Component {render() {return ();}
}
import React, { Component } from 'react'export default class About extends Component {render() {return (我是About的内容
)}
}
import React, { Component } from 'react'export default class Home extends Component {render() {return (我是Home的内容
)}
}
菜单栏选中添加高亮效果,使用 Link 标签的升级版
NavLink 带有一个 activeClassName 属性,可为其赋值高亮时的样式类名,默认值是active,如果你的高亮样式类名正好是 active,那就可省略不写这个属性了
NavLink可以实现路由链接的高亮,通过activeClassName指定样式名,默认active
修改上面4.2部分代码如下:
import { NavLink, Route } from 'react-router-dom'About
Home
NavLink 身上很多属性是冗余的,如果你写了很多NavLink标签的话,此时我们可以选择防撞NavLink
这里封装成 MyNavLink 组件放到 src/components 下
补充一个小知识点:标签体内容依然是特殊的标签属性,自动收集到 props.children 属性上
import React, { Component } from 'react'
import { NavLink } from 'react-router-dom'export default class MyNavLink extends Component {render() {return (// 标签体内容依然是特殊的标签属性,自动收集到 props.children 属性上// {this.props.children} // 很明显,既然 children 是 props 默认可接收的属性,那如下那般写法岂不是更简洁了~...this.props} />)}
}
import { Route } from 'react-router-dom'
import { MyNavLink } from './cmponents/MyNavLink'About
Home
推荐学习参考视频:尚硅谷React教程-P77-路由的基本使用