国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

antd源碼解讀(1)-index.js

zeyu / 3151人閱讀

github: 地址
gitbook: 地址

Index.js

看一個(gè)代碼的時(shí)候首先當(dāng)然是從他的入口文件開始看起,所以第一份代碼我們看的是/index.js文件

開始

打開index.js文件,代碼只有28行,其中包含了一個(gè)camelCase函數(shù)(看函數(shù)名就知道這是個(gè)給名稱進(jìn)行駝峰命名法的函數(shù)),一個(gè)req變量,以及這個(gè)的變量操作和export操作

在這個(gè)文件里面我首先查了require.context()這個(gè)函數(shù)的使用,可以參考這里,以及exportsmodule.exports的區(qū)別,可以參考這里,這里是一些鋪墊,下面進(jìn)入正題

通過上面兩個(gè)鋪墊,我們知道了req這個(gè)變量是用來循環(huán)拋出組件的一個(gè)對(duì)象,并且還拋出了每一個(gè)組件的樣式文件

  // index.js
  function camelCase(name) {
    return name.charAt(0).toUpperCase() +
      name.slice(1).replace(/-(w)/g, (m, n) => {
        return n.toUpperCase();
      });
  }

  // 拋出樣式 這個(gè)正則是匹配當(dāng)前目錄下的所有的/style/index.tsx文件
  const req = require.context("./components", true, /^./[^_][w-]+/style/index.tsx?$/);

  req.keys().forEach((mod) => {
    let v = req(mod);
    if (v && v.default) {
      v = v.default;
    }
    // 拋出組件 這個(gè)正則是匹配當(dāng)前目錄下的素有index.tsx文件
    const match = mod.match(/^./([^_][w-]+)/index.tsx?$/);
    if (match && match[1]) {
      if (match[1] === "message" || match[1] === "notification") {
        // message & notification should not be capitalized
        exports[match[1]] = v;
      } else {
        exports[camelCase(match[1])] = v;
      }
    }
  });

  module.exports = require("./components");

但是最后不知道為甚還需要加上對(duì)吼那一句module.exports = require("./components");
既然上面都已經(jīng)拋出,為什么這里還需要再次拋出,不過好像是跟什么環(huán)境和打包之后的一些操作有關(guān),所以這里一兩次拋出。這個(gè)地方還需要向大家請(qǐng)教。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/88981.html

相關(guān)文章

  • antd源碼解讀(二)Tooltip組件解析

    摘要:結(jié)構(gòu)項(xiàng)目結(jié)構(gòu)如下,負(fù)責(zé)外層封裝,負(fù)責(zé)事件綁定與渲染控制。節(jié)點(diǎn)通過決定事件綁定情況,即通過屬性綁定事件情況,事件控制組件的屬性,這里就不詳細(xì)說了。為隱藏狀態(tài)下的添加的,并包裹懶加載組件。 引言 antd的Tooltip組件在react-componment/trigger的基礎(chǔ)上進(jìn)行封裝,而組件Popover和Popconfirm是使用Tooltip組件的進(jìn)行pop,在react-com...

    fanux 評(píng)論0 收藏0
  • antd源碼解讀(2)- Icon

    摘要:作為開發(fā)當(dāng)中使用相對(duì)頻繁的一個(gè)組件,其實(shí)現(xiàn)也很簡單,但是其中比較麻煩的一部分是字體的制作,可以參看這篇文章。接口中的種屬性方法,不屬于上述六種。為事件屬性,可以大家也可以根據(jù)上面所提供的制作的方法和這樣的方式來實(shí)現(xiàn)自己的組件 Icon icon作為開發(fā)當(dāng)中使用相對(duì)頻繁的一個(gè)組件,其實(shí)現(xiàn)也很簡單,但是其中比較麻煩的一部分是icon字體的制作,可以參看這篇文章。 Antd的Icon組件使用...

    fjcgreat 評(píng)論0 收藏0
  • antd源碼解讀(6)- Affix

    摘要:這個(gè)組件是一個(gè)圖釘組件,使用的布局,讓組件固定在窗口的某一個(gè)位置上,并且可以在到達(dá)指定位置的時(shí)候才去固定。 Affix 這個(gè)組件是一個(gè)圖釘組件,使用的fixed布局,讓組件固定在窗口的某一個(gè)位置上,并且可以在到達(dá)指定位置的時(shí)候才去固定。 AffixProps 還是老樣子,看一個(gè)組件首先我們先來看看他可以傳入什么參數(shù) // Affix export interface Affix...

    coordinate35 評(píng)論0 收藏0
  • antd源碼解讀(3)- Button

    Button Button包括了兩個(gè)組件,Button與ButtonGroup。 ButtonProps 看一個(gè)組件首先看的是他的傳參也就是props,所以我們這里先看Button組件的ButtonProps export type ButtonType = primary | ghost | dashed | danger; export type ButtonShape = circl...

    miguel.jiang 評(píng)論0 收藏0
  • antd源碼解析(一)Form組件解析

    摘要:引言看過源碼的都知道,其實(shí)是在一組組件的基礎(chǔ)上進(jìn)行了一層封裝,本文主要解讀組件的基礎(chǔ)組件,另外會(huì)略過模式下的代碼。解讀源碼首先要從自己最常用的或者感興趣的入手,首先組件最主要的還是在這個(gè)裝飾器入手。 引言 看過antd源碼的都知道,antd其實(shí)是在一組react-componment組件的基礎(chǔ)上進(jìn)行了一層ui封裝,本文主要解讀antd組件Form的基礎(chǔ)組件react-componmen...

    timger 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

zeyu

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<