Интерпретация исходного кода antd (1)-index.js

JavaScript React.js Ant Design

github: адрес
gitbook: адрес

Index.js

При просмотре кода, конечно, он начинается с его входного файла, поэтому первый код, на который мы смотрим, это/index.jsдокумент

Начинать

Открытьindex.jsфайл, код всего 28 строк, который содержитcamelCaseфункция (посмотрите на имя функции, чтобы знать, что это функция, которая использует верблюжий регистр для имени),reqпеременные и операции с переменными для этого иexportдействовать

В этом файле я впервые проверилrequire.context()Использование этой функции, вы можете обратиться кздесь,так же какexportsа такжеmodule.exportsразница, вы можете обратиться кздесь, вот некоторые предзнаменования, давайте к делу

Через два вышеупомянутых предзнаменования мы знаемreqЭта переменная используется для циклического прохождения объекта, который генерирует компоненты, а также создает файл стиля каждого компонента.

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

  // 抛出样式 这个正则是匹配当前目录下的所有的/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;
    }
    // 抛出组件 这个正则是匹配当前目录下的素有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');

Но, в конце концов, я не знаю, зачем мне нужно добавлять это предложение.module.exports = require('./components');
Раз выше закинули, то зачем еще раз закидывать, но это вроде как связано с какой средой и какими операциями после упаковки, так что закинуть раз-два сюда. Это место еще нужно спросить у всех.

Категории