成人免费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-07-27 08:31:28

SQL開發控制

2022-04-07 11:15:22

PulseEventAPI函數

2022-12-30 08:35:00

2023-06-14 17:56:54

2024-02-04 00:00:00

@ValidSpring@Validated

2023-12-08 08:38:15

EventLoopAPI瀏覽器

2022-10-10 18:38:56

inert屬性鍵盤

2023-12-28 08:43:28

前端算法搜索

2022-10-19 08:19:32

動態基線預警

2024-01-08 20:05:32

2023-06-09 07:18:03

開源數據庫

2022-05-31 07:32:19

JDK8API工具

2023-12-06 08:01:03

CSSPostCSS

2023-06-14 08:15:34

算法合并操作Winner

2024-03-27 13:33:00

MySQLInnoDB事務

2022-10-24 20:25:40

云原生SpringJava

2015-09-18 09:17:06

數據分析

2023-01-02 23:58:03

2022-10-08 08:09:13

MGRGreatSQL事務
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 91精品国产色综合久久不卡蜜臀 | 中文久久 | 日韩乱码一二三 | 国产a区 | 夜夜爽99久久国产综合精品女不卡 | 美女一区二区在线观看 | 91免费看片| 久久婷婷国产麻豆91 | 久久精品视频网站 | 免费能直接在线观看黄的视频 | 中文字幕免费观看 | 欧美精品网站 | 天天射美女 | 国产污视频在线 | 99热.com| 欧美日韩在线精品 | 亚洲国产aⅴ成人精品无吗 亚洲精品久久久一区二区三区 | 欧美色专区 | 国产欧美一区二区三区久久手机版 | 亚洲欧美日韩精品久久亚洲区 | 免费av毛片| 天天做日日做 | 欧美精品在线一区二区三区 | 亚洲aⅴ| 一区二区免费 | 中文字幕一区在线观看视频 | 在线视频国产一区 | 欧美日韩高清免费 | 国产一区二区电影网 | 国产内谢| 91精品国产91久久久久久吃药 | 国产 日韩 欧美 在线 | 国产精品一区二区av | 久久一区二区三区免费 | 81精品国产乱码久久久久久 | 在线国产欧美 | 欧美 日韩 国产 成人 在线 | 国产精品二区三区 | 最新国产在线 | 男女久久久 | 免费观看色 |