为什么在不使用 useEffect 的情况下尝试从 localStorage 和 API 加载数据时数据结果显示两次?
Why data results showed twice while trying to load data from localStorage and API without using useEffect?
这是我的项目的一部分,我试图从我的 localStorage 加载数据并从 jsonplaceholder 加载数据(这是为了我的查询,它不是我的主要项目的一部分):
//load data from local storage and API without using useEffect
const savedCart = getDatabaseCart();
console.log(savedCart);
fetch("https://jsonplaceholder.typicode.com/users")
.then((res) => res.json())
.then((data) => console.log(data));
//load data from local storage and API using useEffect
useEffect(() => {
const savedCart = getDatabaseCart();
console.log(savedCart);
fetch("https://jsonplaceholder.typicode.com/users")
.then((res) => res.json())
.then((data) => console.log(data));
}, []);
结果在这里:第一个结果在我不应用useEffect时出现,第二个结果在我应用useEffect时出现---->
为什么会这样???
这很可能是由重新渲染引起的(状态已在其他地方更新)。第二个参数为空的 useEffect 挂钩导致处理程序仅 运行 一次。这里有更多信息:css-tricks.com/run-useeffect-only-once
这是我的项目的一部分,我试图从我的 localStorage 加载数据并从 jsonplaceholder 加载数据(这是为了我的查询,它不是我的主要项目的一部分):
//load data from local storage and API without using useEffect
const savedCart = getDatabaseCart();
console.log(savedCart);
fetch("https://jsonplaceholder.typicode.com/users")
.then((res) => res.json())
.then((data) => console.log(data));
//load data from local storage and API using useEffect
useEffect(() => {
const savedCart = getDatabaseCart();
console.log(savedCart);
fetch("https://jsonplaceholder.typicode.com/users")
.then((res) => res.json())
.then((data) => console.log(data));
}, []);
结果在这里:第一个结果在我不应用useEffect时出现,第二个结果在我应用useEffect时出现---->
为什么会这样???
这很可能是由重新渲染引起的(状态已在其他地方更新)。第二个参数为空的 useEffect 挂钩导致处理程序仅 运行 一次。这里有更多信息:css-tricks.com/run-useeffect-only-once