如果 useCallback 用于阻止每次渲染时声明函数,那么
在组件(case1)外部声明函数而不是在组件(case3)内部声明函数怎么样?
function case1() {
/* do stuff */ // declared at JS script loaded(not sure)
}
const App = () => {
const case2 = () => {/* do stuff */}; // declared every render
const case3 = useCallback(() => {/* do stuff */}, []); // declared at first render
return (<></>);
}
Run Code Online (Sandbox Code Playgroud) 我尝试创建一个库并对其进行测试,但发生了错误。
错误代码:
./libasm.a: error adding symbols: Archive has no index; run ranlib to add one
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
我是这样编译的。
nasm -f macho64 ft_strlen.s -o ft_strlen.o
ar rcs libasm.a ft_strlen.o
ranlib libasm.a
gcc main.c libasm.a
下面是源文件
;ft_strlen.s
segment .text
global ft_strlen
ft_strlen:
mov rax, 0
jmp count
count:
cmp BYTE [rdi + rax], 0
je exit
inc rax
jmp count
exit:
ret
Run Code Online (Sandbox Code Playgroud)
./libasm.a: error adding symbols: Archive has no index; run ranlib to add one
collect2: error: …Run Code Online (Sandbox Code Playgroud) case1和case2有什么区别?
const [a, setA] = useState(0);
setA(a + 1); //case 1
setA(a => a + 1); //case 2
Run Code Online (Sandbox Code Playgroud)