<Fragment> (<>...</>)
<Fragment> γδ½Ώγγγ¨γ§γγ©γγη¨οΏ½?γγΌγγη¨γγγ«θ¦η΄ γγ°γ«γΌγεγγγγ¨γγ§γγΎγγιεΈΈγ― <>...</> γ¨γγζ§ζγ§δ½Ώη¨γγγΎγγ
<>
<OneChild />
<AnotherChild />
</>γͺγγ‘γ¬γ³γΉ
<Fragment>
εδΈοΏ½?θ¦η΄ γεΏ
θ¦γͺε ΄ι’γ§γθ€ζ°οΏ½?θ¦η΄ γ <Fragment> γ§γ©γγγγγγ¨γ§γ°γ«γΌγεγγγγ¨γγ§γγΎγγFragment γ§θ¦η΄ γγ°γ«γΌγεγγ¦γγεΊεγγγ DOM γ«γ―ε½±ιΏγδΈγγΎγγγθ¦η΄ γγ°γ«γΌγεγγγ¦γγͺγγ¨γγ¨εγγ§γγη©ΊοΏ½? JSX γΏγ° <></> γ―γγ»γ¨γγ©οΏ½?ε ΄ε <Fragment></Fragment> οΏ½?ηη₯θ¨ζ³γ§γγ
props
- ηη₯ε―θ½
key: ζη€Ίηγͺ<Fragment>ζ§ζγ§οΏ½?οΏ½θ¨γγγγγ©γ°γ‘γ³γγ― key γζγ€γγ¨γγ§γγΎγγ
注ζηΉ
-
keyγγγ©γ°γ‘γ³γγ«ζΈ‘γγγε ΄εγ―γ<>...</>ζ§ζγδ½Ώη¨γγγγ¨γ―γ§γγΎγγγ'react'γγFragmentγζη€Ίηγ«γ€γ³γγΌγγγ<Fragment key={yourKey}>...</Fragment>γ¨γ¬γ³γγΌγγͺγγγ°γͺγγΎγγγ -
React γ―γ
<><Child /></>γ¨[<Child />]οΏ½?γ¬γ³γγΌιγγγγγ―<><Child /></>γ¨<Child />οΏ½?γ¬γ³γγΌιγ§θ‘γζ₯γγε ΄εγ« state γγͺγ»γγγγΎγγγγγγ―εδΈγ¬γγ«οΏ½?ζ·±γοΏ½?γ¨γοΏ½?γΏοΏ½?εδ½γ§γγδΎγγ°γ<><><Child /></></>γγ<Child />γΈοΏ½?ε€ζ΄γ§γ― state γγͺγ»γγγγγΎγγε ·δ½ηγͺζ―γθγοΏ½?θ©³η΄°γ―γγ‘γγεη §γγ¦γγ γγγ
δ½Ώη¨ζ³
θ€ζ°οΏ½?θ¦η΄ γθΏγ
θ€ζ°οΏ½?θ¦η΄ γγ°γ«γΌγεγγγγγ« Fragment γγγγγ¨εηοΏ½? <>...</> ζ§ζγδ½Ώη¨γγγγ¨γγ§γγΎγγγγγ«γγεδΈοΏ½?θ¦η΄ γοΏ½?γγε ΄ζγ§γγγ°γ©γγ«γ§γγθ€ζ°οΏ½?θ¦η΄ γι
οΏ½?γγγγ¨γγ§γγγγγ«γͺγγΎγγδΎγγ°γγ³γ³γγΌγγ³γγ― 1 γ€οΏ½?θ¦η΄ γγθΏγγγ¨γγ§γγΎγγγγγγ©γ°γ‘γ³γγδ½Ώη¨γγγ°θ€ζ°οΏ½?θ¦η΄ γγΎγ¨γγ¦γγ°γ«γΌγγ¨γγ¦θΏγγΎγγ
function Post() {
return (
<>
<PostTitle />
<PostBody />
</>
);
}γγ©γ°γ‘γ³γγζη¨γͺοΏ½?γ―γDOM θ¦η΄ οΏ½?γγγͺδ»οΏ½?γ³γ³γγγ§θ¦η΄ γγ©γγγγε ΄εγ¨η°γͺγγγγ©γ°γ‘γ³γγ§θ¦η΄ γγ°γ«γΌγεγγ¦γγ¬γ€γ’γ¦γγγΉγΏγ€γ«γ«ε½±ιΏγδΈγγͺγγγγ§γγδ»₯δΈοΏ½?δΎγγγ©γ¦γΆγγΌγ«γ§γ€γ³γΉγγ―γοΌinspect, θͺΏζ»οΌγγ¦γΏγγ¨γγγΉγ¦οΏ½? <h1> γ <article> DOM γγΌγγγ©γγγγγγ«ε
εΌγ¨γγ¦θ‘¨η€Ίγγγγγ¨γγγγγΎγγ
export default function Blog() { return ( <> <Post title="An update" body="It's been a while since I posted..." /> <Post title="My new blog" body="I am starting a new blog!" /> </> ) } function Post({ title, body }) { return ( <> <PostTitle title={title} /> <PostBody body={body} /> </> ); } function PostTitle({ title }) { return <h1>{title}</h1> } function PostBody({ body }) { return ( <article> <p>{body}</p> </article> ); }
γγγ«ζ·±γη₯γ
δΈθΏ°οΏ½?δΎγ―γReact γγ Fragment γγ€γ³γγΌγγγ¦δ»₯δΈοΏ½?γγγ«ζΈγγγ¨γ¨εγγ§γγ
import { Fragment } from 'react';
function Post() {
return (
<Fragment>
<PostTitle />
<PostBody />
</Fragment>
);
}Fragment γ« key γζΈ‘γε ΄εδ»₯ε€γ§γ―γιεΈΈεΏ
θ¦γγγΎγγγ
θ€ζ°οΏ½?θ¦η΄ γε€ζ°γ«ε²γε½γ¦γ
δ»οΏ½?θ¦η΄ γ¨εγγγγ«γγγ©γ°γ‘γ³γγθ¦η΄ γ¨γγ¦ε€ζ°γ«ε²γε½γ¦γγγprops γ¨γγ¦ζΈ‘γγγγγγγ¨γγ§γγΎγοΌ
function CloseDialog() {
const buttons = (
<>
<OKButton />
<CancelButton />
</>
);
return (
<AlertDialog buttons={buttons}>
Are you sure you want to leave this page?
</AlertDialog>
);
}γγγΉγγ¨θ¦η΄ γγ°γ«γΌγεγγ
Fragment γδ½Ώγγ¨γγγΉγγ¨γ³γ³γγΌγγ³γγγ°γ«γΌγεγγγγ¨γγ§γγΎγοΌ
function DateRangePicker({ start, end }) {
return (
<>
From
<DatePicker date={start} />
to
<DatePicker date={end} />
</>
);
}γγ©γ°γ‘γ³γοΏ½?γͺγΉγγγ¬γ³γγΌγγ
γγ‘γγ― <></> ζ§ζοΏ½?代γγγ« Fragment γζη€Ίηγ«θ¨θΏ°γγεΏ
θ¦γγγε ΄ι’γ§γγγ«γΌγε
γ§θ€ζ°οΏ½?θ¦η΄ γγ¬γ³γγΌγγγ¨γγ«γ―γεθ¦η΄ γ« key γε²γε½γ¦γεΏ
θ¦γγγγΎγγγ«γΌγε
οΏ½?θ¦η΄ γγγ©γ°γ‘γ³γοΏ½?ε ΄εγ―γkey ε±ζ§γζΈ‘γγγγ«ιεΈΈοΏ½? JSX θ¦η΄ οΏ½?ζ§ζγδ½Ώη¨γγεΏ
θ¦γγγγΎγγ
function Blog() {
return posts.map(post =>
<Fragment key={post.id}>
<PostTitle title={post.title} />
<PostBody body={post.body} />
</Fragment>
);
}DOM γγ€γ³γΉγγ―γγγγ¨γγγ©γ°γ‘γ³γοΏ½?εθ¦η΄ οΏ½?γΎγγγ«γ©γγθ¦η΄ γγͺγγγ¨γη’Ίθͺγ§γγΎγγ
import { Fragment } from 'react'; const posts = [ { id: 1, title: 'An update', body: "It's been a while since I posted..." }, { id: 2, title: 'My new blog', body: 'I am starting a new blog!' } ]; export default function Blog() { return posts.map(post => <Fragment key={post.id}> <PostTitle title={post.title} /> <PostBody body={post.body} /> </Fragment> ); } function PostTitle({ title }) { return <h1>{title}</h1> } function PostBody({ body }) { return ( <article> <p>{body}</p> </article> ); }