在 React Router 中使用静态样式的主要问题是很难跟踪不同的路由及其关联的样式。 使用静态样式时,每个路由都需要有自己的一组 CSS 规则,这很快就会变得笨拙且难以维护。 此外,如果在多个路由中使用一种样式,则需要在所有路由中复制它,这使得代码很难保持 DRY(不要重复自己)。
import React from 'react'; import { BrowserRouter as Router, Route, Link } from 'react-router-dom'; import styled from 'styled-components'; const StyledLink = styled(Link)` color: palevioletred; font-weight: bold; &:hover { color: white; text-decoration: none; } `; const App = () => ( <Router> <div> <ul> <li><StyledLink to="/">Home</StyledLink></li> <li><StyledLink to="/about">About</StyledLink></li> </ul> <hr /> <Route exact path="/" component={Home} /> <Route path="/about" component={About} /> </div> </Router>) ; const Home = () => ( <div> <h2>Home</h2> </div>) ; const About = () => ( <div> <h2>About</h2> </div>) ; export default App;
1.第一行导入React库。
2、第二行从react-router-dom库中导入BrowserRouter、Route、Link组件。
3. 第三行从styled-components 库中导入样式组件。
4. 第四行使用从 react-router-dom 导入的 Link 组件创建了一个 StyledLink 组件,并将其样式设置为 color: palevioletred 和 font-weight: bold,以及将其颜色更改为白色并删除所有文本的悬停效果悬停时的装饰。
5. 第五行创建一个 App 组件,该组件呈现一个 Router 组件,其中包含两个 Route 组件(一个用于 Home,一个用于 About)。 它还使用在上面的第 4 行中创建的 StyledLink 组件呈现两个链接(Home 和 About)的无序列表,这两个链接由 hr 标签分隔以用于样式目的。
6. 第 8 – 11 行创建了两个名为 Home 和 About 的功能组件,当它们上面的第 2 行中各自的 Route 组件调用它们时,它们会在其中呈现带有各自名称的 h5 标签(Home 呈现“Home”,而 About 呈现“About” ).
7. 最后,第 12 行导出 App 组件,以便在需要时可以在我们的应用程序的其他地方使用
静态样式
React Router 中的静态样式是应用于组件并保持不变的样式,无论组件的状态或道具有任何变化。 这与动态样式形成对比,动态样式会根据组件的状态或道具而改变。 静态样式可用于在整个应用程序中创建一致的外观,并为开发人员提供一种快速设置组件样式的简便方法,而无需在每次发生更改时手动调整它们。
样式组件包
Styled-components 是 React Router 的一个流行包,它允许开发人员在他们的 React 应用程序中创建和管理组件级样式。 它提供了一种简单的方法来编写作用域为单个组件的 CSS 代码,使其更易于维护和调试。 Styled-components 还可以更轻松地跨多个组件共享样式,并提供对主题的支持。 此外,styled-components 可以与 React Router 的 Link 组件一起使用,允许开发人员在他们的应用程序中设置链接样式。
如何使用静态样式
通过使用内联样式属性,可以在 React Router 中使用静态样式。 此属性允许您将样式直接应用于元素,而无需单独的样式表。 要在 React Router 中使用静态样式,您需要创建一个样式对象,然后将其作为参数传递给组件的样式属性。 例如:
常量我的风格= {
背景颜色:'#f2f2f2',
fontSize: '20px',
颜色:'#000'
};