Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
296 views
in Technique[技术] by (71.8m points)

javascript - Is react useMemo more performant than module level variable?

I need to hard-code some data (no need to change) for a react component, just wondering how i can do it in the most performant way. By performant, i mean fast execution as well as minimum usage of system resource. Two ways I have:

// Way 1. define data outside the component
const data = ['test1', 'test2', 'test3', 'test4', 'test5'...'test1000']

export default function TestComponent() {
  return <>{data.map(item => <p>{item}</p>)}</>
}

// Way 2. define data inside the component with useMemo
export default function TestComponent() {
  const data = useMemo(() => ['test1', 'test2', 'test3', 'test4', 'test5'...'test1000'], [])
  return <>{data.map(item => <p>{item}</p>)}</>
}

Just want some advice on which of the above (or even other ways) is more performant. Thanks!

question from:https://stackoverflow.com/questions/65838224/is-react-usememo-more-performant-than-module-level-variable

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

The most performant approach will be to not do any computation inside the component - just return the same constant value every time:

const data = ['test1', 'test2', 'test3', 'test4', 'test5'...'test1000']
const result = <>{data.map(item => <p>{item}</p>)}</>
export default function TestComponent() {
  return result
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...