react 问题解决
1. Plugin "react" was conflicted between "package.json » eslint-config-react-app »
rm -rf node_modules
rm pnpm-lock*
pnpm install
2. React 组件的名称首字母必须大写
3. JSX 语法注意事项
JSX 语法返回值可以写在同一行。
return <img src="https://i.imgur.com/MK3eW3As.jpg" alt="Katherine Johnson" />;
如何 JSX 返回值如果不处于同一行的话,需要用小括号包裹起来。
return (
<div>
<img src="https://i.imgur.com/MK3eW3As.jpg" alt="Katherine Johnson" />
</div>
);
JSX 返回值只能够有一个顶级元素。
如果要在一个组件中包含多个元素,需要用一个父标签把它们包裹起来。
return (
<div>
<h1>海蒂·拉玛的待办事项</h1>
<img
src="https://i.imgur.com/yXOvdOSs.jpg"
alt="Hedy Lamarr"
class="photo"
>
<ul>
<li>...</li>
</ul>
</div>
);
如果不想使用 <div></div>
可以使用 <></>
return (
<>
<h1>海蒂·拉玛的待办事项</h1>
<img
src="https://i.imgur.com/yXOvdOSs.jpg"
alt="Hedy Lamarr"
class="photo"
>
<ul>
...
</ul>
</>
);
标签必 须闭合
<img>
必须写成<img/>
<li>xxx
必须改成<li>xxx</li>
使用驼峰式命名法给大部分属性命名
例如:className
、strokeWidth
等。
具体见文档:https://zh-hans.react.dev/reference/react-dom/components/common
4. 永远不要再组件里面嵌套定义组件
错误做法:
export default function Gallery() {
// 🔴 永远不要在组件中定义组件
function Profile() {
// ...
}
// ...
}
正确做法:
export default function Gallery() {
// ...
}
// ✅ 在顶层声明组件
function Profile() {
// ...
}
5. 引入组件
下面 2 种方法均可。
import Gallery from './Gallery.js';
import Gallery from './Gallery';