[英]render a part JSX by another function component - reactJS
我有一個像這樣的 function 組件
function myMainComponent() {
const MyUIA() {
//some calulations about attrs
return (<div><ComponentA {...attrs}></div>)
}
const MyUIB() {
//some calulations about attrs
return (<div><ComponentA {...attrs}></div>)
}
// Way A
/*
return (
<div>
<MyUIA/>
<MyUIB/>
</div>);
*/
// Way B
return (
<div>
{MyUIA()}
{MyUIB()}
</div>);
}
WayA 和 WayB 渲染的結果是一樣的,但是第一種情況有閃爍
因為我們知道我們在 react 中編寫的每個代碼都會首先轉換為 JSX,然后才會被渲染,所以如果我們看到原生方法的 JSX 元素被創建了兩次,而 JSX 的元素只創建了一次。 所以這是可以看到閃爍的情況。 我希望它有所幫助。
function myMainComponent() {
const MyUIA = () => {
return /*#__PURE__*/React.createElement("div", null,/*#__PURE__*/React.createElement(ComponentA, null)); };
const MyUIB = () => {
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(ComponentA, null));};
// Way A
return /*#__PURE__*/React.createElement("div", null,
/*#__PURE__*/React.createElement(MyUIA, null),
/*#__PURE__*/React.createElement(MyUIB, null));
// Way B
return /*#__PURE__*/React.createElement("div", null, MyUIA(), MyUIB());
}
這可能與您的問題無關,但它是所有反應用戶的一般提示,反應組件最多只能有 1 個返回語句
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.