成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

React中的函數式插槽,你明白了嗎?

數據庫 其他數據庫
雖然這種寫法看起來很奇怪,但是可以極大地提高組件的靈活性。或者說,這是一種超級加強的插槽寫法。因為,我們可以在組件外自定義渲染邏輯。

朋友們,好久不見,最近搬家,通勤時間從1小時變成三小時,花了一兩個月終于適應了,所以有空我又來更新文章了,今天分享 React 開發中遇到的具名插槽的函數用法

你可能見過下面的寫法。通常情況下,我們都會使用 children 屬性實現類似Vue的默認插槽功能。

const Component = ({ value, children }) => {
  return <>
      {value} 
      {children}
  </>
}
 
function App() {
  return <Component value="hello">world</Component>
}

上面使用了隱藏的 children 屬性,我們可以顯示的指定它

function App() {
  return <Component value="hello" children="world" />
}

children 屬性默認是 jsx 表達式,不是時,需要做額外的解析,否則會報錯

但是當 children 屬性是函數時,就會發生質的變化。

const Component = ({value, children}) => {
  return <>{children(value)}</>
}

const renderChildren = (value) => {
  return value.join('--')
}

function App() {
  return (
    <Component
      value={["hello", 'world']}
      children={renderChildren}
    />
  )
}

圖片圖片

顯示的指定 children 屬性時,相當于具名插槽,所以我們未必需要使用 children 字段,或許你可以使用reader更合適

如果你不喜歡顯示的聲明 children 屬性,那么可以這么寫:

function App() {
  return (
    <Component value={["hello", 'world']}>
      {(value) => {
          return value.join('--')
      }}
    </Component>
  )
}

這種寫法似乎有點熟悉,沒錯,React 官方也這么干過,你來看看這個例子。

const Context = createContext({name: '萌萌噠草頭將軍'});

export const Provider = Context.Provider;
export const Consumer = Context.Consumer;

// 你的組件,假設已經被 Provider 包裹了
function Component() {
  return (
    <Consumer>{
      ({ name }) => <h1>name: { name }</h1>
    }</Consumer>
  );
}

相似的還有一些第三方庫,比如 antd 的 <Form.List />。這里就不一一舉例子了。

雖然這種寫法看起來很奇怪,但是可以極大地提高組件的靈活性。或者說,這是一種超級加強的插槽寫法。因為,我們可以在組件外自定義渲染邏輯。

責任編輯:武曉燕 來源: 萌萌噠草頭將軍
相關推薦

2024-08-28 13:09:50

2022-04-07 11:15:22

PulseEventAPI函數

2022-07-27 08:31:28

SQL開發控制

2022-12-30 08:35:00

2023-06-14 17:56:54

2024-02-04 00:00:00

@ValidSpring@Validated

2023-12-28 08:43:28

前端算法搜索

2024-01-08 20:05:32

2022-10-19 08:19:32

動態基線預警

2023-12-08 08:38:15

EventLoopAPI瀏覽器

2022-10-10 18:38:56

inert屬性鍵盤

2022-05-31 07:32:19

JDK8API工具

2023-06-09 07:18:03

開源數據庫

2015-09-18 09:17:06

數據分析

2023-01-02 23:58:03

2022-10-08 08:09:13

MGRGreatSQL事務

2022-03-05 17:56:29

桌面應用開發

2023-06-14 08:15:34

算法合并操作Winner

2024-03-27 13:33:00

MySQLInnoDB事務

2022-10-24 20:25:40

云原生SpringJava
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 草久久 | 精精精精xxxx免费视频 | 免费看国产精品视频 | 人人爽人人爽 | 日韩手机在线视频 | 亚洲国产欧美国产综合一区 | 国产在线a视频 | 久久国产精99精产国高潮 | 国产a区| 日本偷偷操 | 欧美黄色一区 | 成人免费视频网站在线看 | 日韩在线播放第一页 | 午夜天堂| 蜜桃在线视频 | 日韩二三区 | 久久久久国产一区二区三区四区 | 久久激情视频 | 91精品国产91久久久久游泳池 | 精品欧美一区二区三区久久久小说 | 亚洲日日 | 亚洲播放 | 国产第一页在线观看 | 性做久久久久久免费观看欧美 | 中国一级特黄毛片大片 | 一区二区av | 少妇精品亚洲一区二区成人 | 国产精品2区 | 欧美精品国产一区二区 | 成人av观看 | 国产资源网 | 国产高清在线精品 | 99热热| 亚洲午夜电影 | 一区二区三区在线 | 亚洲一区久久 | 亚洲国产成人精品女人 | 欧美中文一区 | 亚洲欧洲精品在线 | 精品国产乱码久久久久久丨区2区 | 爱爱视频日本 |