【发布时间】:2020-09-29 11:52:17
【问题描述】:
所以这是我减速路线的第一个组件。我决定制作两个导航项。并做了一些造型。但是我得到了许多重新渲染的错误。因为我尝试添加带有悬停效果的样式。我不想使用 css。 这是我的代码:
import React, { useState } from 'react';
import { BrowserRouter, Route, Switch, Link } from 'react-router-dom';
import logo from './logo.svg';
import './App.css';
import Products from './Screens/ProductsList';
import Preview from './Screens/Product';
import ProductCreate from './Screens/ProductCreate';
import ProductEdit from './Screens/ProductEdit';
import Home from './Screens/Home';
function App() {
const [hover, setHover] = useState(false);
return (
<BrowserRouter>
<div style={style.navigationContainer}>
<Link
onMouseEnter={setHover(true)}
onMouseLeave={setHover(false)}
style={hover ? style.hoverNavItem : style.navItem}
to="/products"
>
Products List
</Link>
<Link
onMouseEnter={setHover(true)}
onMouseLeave={setHover(false)}
style={hover ? style.hoverNavItem : style.navItem}
to="/products/create"
>
Create Product
</Link>
</div>
<Switch>
<Route
key="edit-product"
path="/products/:id/edit"
component={ProductEdit}
></Route>
<Route
key="add-product"
path="/products/create"
component={ProductCreate}
></Route>
<Route key="preview" path="/products/:id" component={Preview}></Route>
<Route key="products" path="/products" component={Products}></Route>
<Route exact path="/" component={Home}></Route>
</Switch>
</BrowserRouter>
);
}
export default App;
【问题讨论】:
-
我能问一下你为什么要使用 JS 而不是 CSS 来完成这项任务吗?出于性能原因和代码简单性,何时 CSS 将成为首选选项
-
我喜欢一个地方,我只需要为少数项目制作样式,所以我不想创建css文件。
-
你以前用过
styled-components吗?它们让生活变得超级简单,代码超级易读,并且不会像在纯 JS 中那样对性能产生影响 -
从未尝试过,我会阅读文档,谢谢:)
-
用 css 重新制作,现在我发现它需要更少的代码。
标签: reactjs