我是一名初学者 React 开发人员,我对这个特定的代码片段有疑问。
问题:
我特意选择使用 useRef 而不是 useState,因为在用户添加或编辑他们想要的任何链接后,我想将 keyRef 发送到 NoSQL 数据库;而当我使用 useState() 时,它给了我陈旧的状态问题,其中包含所有链接的数组没有不断更新。
有什么建议么?谢谢,麻烦您了!
CodeSandbox链接:https://codesandbox.io/s/react-hooks-counter-demo-forked-0bjdy?file=/src/index.js
应用程序.js
import React, { useState, useRef } from "react";
import ReactDOM from "react-dom";
import { links } from './links';
import "./styles.css";
function App() {
const [loaded, setLoaded] = useState(false);
const formRef = useRef([]);
const keyRef = useRef([]);
if (!loaded) {
keyRef.current = links;
links.forEach(link => RenderLinks(link.id));
setLoaded(true);
}
function RenderLinks(id) {
const formLength = formRef.current.length;
if (id === null)
formRef.current = …Run Code Online (Sandbox Code Playgroud) 在我的一生中,我认为 Node.js 和 JavaScript 是一种单线程语言。Node.js 不适合 CPU 密集型任务,但由于其单线程性质,它是轻量级的。多线程适用于 CPU 密集型任务,因为您可以将任务委托给不同的线程,但它为竞争条件创造了可能变得复杂的开放。
然后是工作线程,告诉我节点现在可以产生名为“工作线程”的线程来传递 CPU 密集型任务,因此它不会阻塞 JavaScript 堆栈。为什么人们把 JavaScript 称为单线程,就像一个永久的定义,如果有了工作线程的力量,它实际上可以是多线程的?或者 JavaScript 确实是永久单线程的,但是借助工作线程的强大功能,一个进程可以拥有多个 JavaScript 线程,而这些线程仍然是单线程的?
Node.js 使用两种线程:一个由事件循环处理的主线程和工作池中的几个辅助线程。
另外,我读过的这篇文章说了上面的说法。这听起来就像 JavaScript 一直在使用多个不同的线程。为什么人们将 JavaScript 称为单线程?
有人知道如何使用 Jest 测试 React 组件的不同屏幕宽度或响应能力吗?我一直在寻找这样做的正确方法,但没有一个解决方案对我有用。例如,我发现有人建议matchMediaPolyfill(window)和有人建议用自定义宽度模拟 div,但这些解决方案都不起作用。请帮忙!谢谢!
我想动态更改 SVG 图像的颜色,而无需内联 SVG 标签(必须静态放入<svg>、<path="...">等),以便消费者可以自由地使用他们想要的任何 SVG 图像和颜色。
用户所要做的就是传入 SVG 标签的 src 和十六进制颜色,我的代码应该动态地将这些颜色填充应用到 SVG 标签中。
你有什么建议吗?谢谢你!
消费者看到的:
import Frame from './Frame.svg';
...
<Icon src={Frame} color='purple' />
Run Code Online (Sandbox Code Playgroud)
我对 UI 组件代码的尝试:
import React from 'react';
import styled from 'styled-components';
const Icon = ({ src, color }) => {
const StyledSVGIcon = styled(src)`
width: 67px;
height: 72px;
fill: ${color};
`;
return <StyledSVGIcon />
};
Run Code Online (Sandbox Code Playgroud)
框架.svg
<svg width="73" height="71" viewBox="0 0 73 71" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0)">
<path d="M47.0139 71H40.8997C39.8807 71 …Run Code Online (Sandbox Code Playgroud) 有人可以像我 9 岁那样向我解释什么以及如何使用 createAsyncThunk 吗?动作字符串有什么用?它是出于逻辑/路径原因临时创建并很快销毁吗?我可以用动作字符串做什么/人们通常用它做什么?我一直盯着文档看,但我无法理解。
这是其他人使用代码的方式,如果有人能破译这个,我会很高兴。
const action = createAsyncThunk('send/sendAction', async (form, thunkAPI) => {
const data = await axios.post('/api', object);
data.reduxRequestId = thunkAPI.requestId;
return data;
}
Run Code Online (Sandbox Code Playgroud)
我一直认为 JS 是一种单线程语言,这使得它对于 CPU 密集型任务效率低下。我最近遇到了工作线程以及它如何通过创建“一个进程下的多个工作线程”来解决这个低效率问题。进程和线程有什么区别?为什么 JS 突然能够产生多个工作线程来帮助主 JS 线程并与之交互以实现并发?你能帮我通俗地理解这个话题吗?谢谢
javascript multithreading single-threaded worker-thread node.js
javascript ×6
reactjs ×4
node.js ×2
css ×1
html ×1
jestjs ×1
react-hooks ×1
redux ×1
responsive ×1
svg ×1
unit-testing ×1