与使用公用文件夹中的样式的 React Router 相关的主要问题是,很难跟踪样式并确保它们被正确应用。 由于 public 文件夹不是 React 组件树的一部分,因此很难知道何时应用了哪些样式。 此外,如果多个组件使用公用文件夹中的相同样式,则可能很难调试出现的任何问题。
import React from 'react'; import { BrowserRouter as Router, Route } from 'react-router-dom'; import { createGlobalStyle } from 'styled-components'; import HomePage from './pages/HomePage'; import AboutPage from './pages/AboutPage'; const GlobalStyle = createGlobalStyle` body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } code { font-family: sourcecode pro, Menlo, Monaco, Consolas, Courier New, monospace; } *{ boxsizing: borderbox;} img{ maxwidth: 100%;} a{ textdecoration : none;} `; // Global styles for the entire app. This will be applied to all components. const App = () => ( // The main component of the app. This is where all routes are defined. <Router> <div> <GlobalStyle /> <Route exact path="/" component={HomePage} /> <Route path="/about" component={AboutPage} /> </div> </Router> ); export default App;
1. 从 'react' 导入 React; // 导入 React 库
2. import { BrowserRouter as Router, Route } from 'react-router-dom'; // 从 react-router-dom 库中导入 BrowserRouter 和 Route 组件
3.从'styled-components'导入{createGlobalStyle}; // 从 styled-components 库中导入 createGlobalStyle 函数
4. 从“./pages/HomePage”导入主页; // 导入主页组件
5. 从'./pages/AboutPage'导入AboutPage; // 导入关于页面组件
6. const GlobalStyle = createGlobalStyle`…`; // 整个应用的全局样式。 这将应用于所有组件。
7. 常量 App = () => (...); // 应用程序的主要组件。 这是定义所有路由的地方。
8.
9.
10 export default App;// 导出默认应用
使用样式
在 React Router 中可以使用样式来自定义应用程序的外观。 样式可用于创建自定义组件、添加动画等。 样式还可用于创建适应不同屏幕尺寸的响应式布局。 此外,样式可用于为应用程序创建主题,允许用户自定义他们的体验。
使用公共文件夹
React Router中的public文件夹是一个特殊的文件夹,可以用来存放图片、CSS、JavaScript等静态文件。 这些文件直接从公用文件夹提供,无需 React 应用程序处理。 这允许更快的加载时间,并使跨应用程序的多个页面管理资产变得更加容易。 公用文件夹还提供了一种将某些文件排除在 Git 等版本控制系统之外的方法,这有助于维护安全性和隐私性。
如何从 React 中的公共文件夹导入 CSS 文件
在 React Router 中,您可以使用 Link 组件从 public 文件夹中导入 CSS 文件。 Link 组件允许您在 href 属性中指定文件的路径。 例如:
这会将 styles.css 文件从您的公共文件夹导入到您的 React Router 应用程序中。