Ant-design: 💥AntDesign4.0が進行中です!

作成日 2019年05月31日  ·  182コメント  ·  ソース: ant-design/ant-design

プレビューサイト

next.ant.design


要約

Ant Design3.0がリリースされた2017年12月から16か月が経ちました。 たくさんのバグを修正し、4289のコミット、138のリリース、7675の問題とPR内にたくさんの新機能(変更ログ)を追加して、GitHubで25375のスターを獲得しました。 Ant Design Pro4.0もリリースしました。 TypeScript、ブロック、およびレイアウトの抽象化のサポート。 私たちはすべての貢献者に感謝したいと思います、そしてあなたの貢献はAntDesignをますます良くしてくれます。

同時に、Ant Design Pro4.0をリリースしました。 TypeScript、Blockをサポートし、レイアウトコンポーネントを提供します。

現時点では、次のことを考えています。それでは、次は何ですか? Ant Designをさらに前進させるために何ができるでしょうか? Ant Design 4.0の計画を立てる時が来ました! 🍻

以下は4.0に関する詳細計画です。 まだ計画中なので、調整する場合があります。

🌓互換性について

4.0で非推奨の小道具を削除します。つまり、非推奨の小道具はサポートされなくなります。 最新の3.xから警告が表示されない場合は、シームレスにアップグレードできます。 それ以外の場合、4.0がリリースされた後、3.0の半年のメンテナンスフェーズがあります。

アップグレードを行うのは面倒です。 これを処理するための互換性のあるパッケージを提供する予定です。

import Compatible from '@ant-design/compatible';

// It works, but will warning in console
const Demo = () => (
  <Compatible>
    <YourApp />
  </Compatible>
);

このパッケージは、3.xメンテナンスフェーズが終了するまで利用できます。

最新のReactAPIを使用する

私たちは長い間React15のサポートを提供してきました。 しかし、Reactには強い互換性があるため、ソーシャルフィードバックからは必要ないようです(React 15に関する問題はほぼ0%です)。 React 15をサポートするために、新しいAPIを慎重に使用しています。 これは4.0以降は問題になりません。

  • 関連コンポーネントのフックAPIを提供します
  • 並行モードのサポート(まだ準備中です。4.0でも調整を続けます)
  • React 17を受け入れる(すごい!〜)

IE9 / 10のサポートを停止する

Ant Design 3.0は、古いIE

その他の互換性のあるアップデート

  • Less2.xからLess3.xへのアップグレード
  • アイコン調整
  • 非推奨に言及

📦サイズを小さくする

アイコンサイズを最適化する

[email protected]後にsvgアイコン(なぜsvg? )を使用します。 文字列名を使用してアイコンをマッピングしますが、オンデマンドで読み込むことはできません。 すべてのアイコンファイルをantdにインポートすると、バンドルサイズが大きくなります。 これは4.0で処理します。

古いアイコンの使用方法は*非推奨になります*:

import { Icon, Button } from 'antd';

const Demo = () => (
  <div>
    <Icon type="smile" />
    <Button icon="smile" />
  </div>
);

4.0では代わりに単一のアイコンのインポートを使用します:

// Directly import
import SmileOutline from 'antd/icons/SmileOutline';

// If tree-shaking supported
import { SmileOutline } from 'antd/icons';

const Demo = () => (
  <div>
    <SmileOutline />
    <Button icon={<SmileOutline />} />
  </div>
);

以前の方法で互換性のある方法を引き続き使用できます。

Draft.jsを削除します

MentionコンポーネントでDraft.jsを使用してポップアップの場所を確認しますが、使用されるのはその一部の機能のみです。 コスト超過のようです。 4.0でDraft.jsを削除し、代わりに他のライトソリューションを使用する予定です。 同時に、3.0のオリジンメンションコンポーネントと区別するために、APIの競合を回避するために新しいコンポーネントメンションが導入されます。 また、互換性のある方法をサポートしています:

// Follow Code will not work
import { Mention } from 'antd';

const Demo = () => (
  <Mention />
);
// Added `Mentions` in 4.0
import { Mentions } from 'antd';

const Demo = () => (
  <Mentions />
);

🧭パフォーマンスの最適化

コミュニティからの大規模なデータセットのパフォーマンスの問題はほとんどありません。 ここでいくつかの最適化が行われることを確認します。

仮想スクロール

仮想スクロールは、パフォーマンスを最適化するための一般的な方法です。 これをコンポーネントでネイティブにサポートすることを計画しています。 4.0リリースではすぐに終了しない場合があります。 ステップバイステップで統合します。

リファクタリングアニメーション

過去にアニメーションでハックをしました。 ほとんどの場合、うまく機能します。 ハックする代わりに、純粋なReactの方法を使用する予定です。 このアップデートは無音になり、何も影響はありません。

🧩コンポーネントの最適化

3.0で多くのコンポーネントを追加し、4.0でも継続します。 これらのコンポーネントは、ビジネスシナリオ、Ant Design Pro、および社会的要件に基づいています。 新しいコンポーネントのプロセスはAntDesign 3.0と同じで、関連するデザインファイルをPRに入れて、公式Webサイトに収集します。 各マイナーバージョンでリリースします。

さらに、いくつかの主要コンポーネントをリファクタリングして、使いやすくする予定です。 以下が含まれますが、これに限定されません。

フォームは、最も使用されるコンポーネントの1つです。 ソーシャルにはAPI設計について多くのコメントがあることに気づきました。
4.0でAPIを簡素化したいと思います。

  • フォームにはデータストアが含まれます。 Form.create()を使用する必要
  • Fom.Itemにはフィールドバインドが含まれます。 getFieldDecoratorを使用する必要
  • Form.Itemは値を保持しますが、フィールドが削除されるとバリデーターは無効になります。
const Demo = () => {
  const [form] = Form.useForm();

  const onFinish = () => {
    // Do something...
  };

  useEffect(() => {
    // Something like ajax call
    form.setFieldsValue({
      username: 'light',
    });
  }, []);

  return (
    <Form form={form} onFinish={onFinish}>
      <Form.Item name="username" rules={[{ required: true }]}>
        <Input />
      </Form.Item>
    </Form>
  );
}

現実の世界では、フォーム間の多くのコミュニケーションに遭遇します(通常は詳細な構成)。 簡単にしたい:

const { useForm, createContext } = Form;
const FormContext = createContext();

const Demo = () => {
  return (
    <FormContext>
      <YourForm1 />
      <YourForm2 />
    </FormContext>
  );
};

フォームの進行状況を確認したい場合は、こちら

テーブル

過去に、私たちはたくさんのテーブルフィードバックを受け取りました。 展開とスクロールの小道具は一緒にうまく機能しないことを私たちは知っています。 今回は、それを修正することに焦点を当てます。 その上、テーブルの最適化について多くのことを行います。 そしてレイアウトを行う簡単な方法:

const Demo = () => {
  return (
    <Table
      header={{
        templateAreas: `
          name    address     address
          name    building    no
        `,
        cells: [
          { key: 'name', title: 'Name' },
          { key: 'address', title: 'Address' },
          { key: 'building', title: 'Building' },
          { key: 'no', title: 'No' },
        ],
      }}
    />
  );
};

antd4-table

また、サマリー行をサポートするためにサマリーフッターを追加する予定です。

新しいDatePicker

現在のDatePickerはほとんどの要件を満たしています。 しかし、コミュニティの議論から、私たちはそれをもっと掘り下げることができます。 休憩年ピッカーとレンジャーピッカーを提供します(ディスカッション)。 また、ユーザーエクスペリエンスを向上させるためにDatePickerデザインスタイルを更新します。

🚀更新を続ける

上記の内容に加えて、いくつかの継続的な更新も行う予定です。 これらは4.0でも更新され続け、開発とユーザーエクスペリエンスが向上します。

🧶アクセシビリティを向上させる

Ant Design 3.0はアクセシビリティのサポートが制限されています。スクリーンリーダーのエクスペリエンスを向上させるために、dom構造を調整し、ariaマークを追加する予定です。 また、キーボードの相互作用を最適化する準備もしています。

🎯開発者API標準

一部のAPI命名スタイルは他のスタイルと少し異なります。 Typescript開発者にとっては問題ではありませんが、それ以外のことを覚えるのは難しいです。
したがって、現在のAPIと関連する命名規則を含む命名標準ドキュメントを作成します。 新機能では、APIの名前の競合を回避するために、名前付けルールに従います。 また、PRでこれに関するコミュニティの意見を歓迎します。

💼ReactStrictモード

antdコンポーネントを<React.StrictMode>でラップしようとすると、警告が表示されます。 一部のコンポーネントは、すでに新しいライフサイクル方式に置き換えられています。 この作業は4.0でも継続されます。

💡開発者エクスペリエンスを向上させる

過去に、いくつかの問題が繰り返し発生することがわかりました。 これらの問題はどういうわけか使用法の問題です。 私たちはこれに対して何かできると思います(実際にはすでに3.0から始まっています)。 開発環境では、予期しないステータス(Momentオブジェクトの無効化、プレフィックス/アフィックスの調整によるdom構造の変更など)を警告します。 私たちは、問題に直面したときに最初に焦点を当てるのはコンソールであると信じています。 問題を見つけるのに役立つ適切なヒントを提供します。 同時に、他の質問を各コンポーネントドキュメントのFAQにまとめます。 メンテナンスの面では、それぞれの使用法の質問に答えることはできませんが、特に新参の開発者には存在します。 FAQは、検索時間を大幅に節約するのに役立つ場合があります。 これに興味がある場合は、開発者のエクスペリエンスの向上にご協力ください。

🐱デザインリソース

Ant Designは、コンポーネントライブラリだけではありません。デザインはサポート力です。デザインリソース(スケッチコンポーネントパッケージ、キッチンツール、デザイントークンなど)を同期更新します。また、ユーザーエクスペリエンスを向上させるために、現在のコンポーネントスタイルを調整します。

マイルストーン

これが私たちのマイルストーン計画です。Githubで関連する問題を作成します。また、社会貢献者を歓迎します。

Q2

  • 関連するAPIを非推奨としてマークし、ドキュメントから削除します。
  • 低レベルのコンポーネントは更新を警告します。

Q3

  • antd 4.0ブランチを作成し、ドキュメントを更新します。
  • コンポーネント開発。

Q4

  • Ant Design4.0をリリースします。

ようこそ

上記のコンテンツは最終的なものではない可能性があります。コミュニティからの考え/アドバイスは大歓迎です!Ant Design 4.0をより良くしましょう!


前書き

AntDesignが2017年12月に3.0をリリースしてから16か月が経ちました。この期間中に、多数のバグを修正し、多数の新機能を追加しました(更新ログ)。 4289のコミットを送信し、138のバージョンをリリースし、7675の問題とPRをクローズし、25375の星を追加しました。 Ant Design Pro4.0もリリースしました。 TypeScriptをサポートし、レイアウトをブロックして抽象化します。 Ant Designをより使いやすくするために尽力してくれた、すべてのコミュニティボランティアに感謝します。

同時に、次のステップとは何か、Ant Designをさらに進化させる方法についても考えており、今年の第4四半期にAnt Design4.0バージョンをリリースする予定です。 🍻

以下は4.0の詳細な計画ですが、もちろんこれはまだ計画中です。正式リリース時に調整される場合があります。

🌓互換性の調整

4.0で非推奨としてマークされた属性を削除します。その時点で、放棄された方法を使用することはできなくなります。プロジェクトを最新の3.xにアップグレードしても、コンソールにantdからの警告メッセージが表示されない場合は、4.0へのアップグレードもシームレスに行われます。 3.xバージョンの場合、4.0リリース後もさらに6か月のメンテナンス作業を実行します。

アップグレードバージョンには、廃止されたAPIを放棄するための多くのエネルギーがあることがわかっています。4.0のリリース時にプロジェクトの移行を支援する互換性のあるパッケージを提供する予定です(関連するAPIはまだ設計中であり、正式にリリースされると異なる場合があります)。

import Compatible from '@ant-design/compatible';

// It works, but will warning in console
const Demo = () => (
  <Compatible>
    <YourApp />
  </Compatible>
);

互換性パックも、3.0のメンテナンス作業が停止するまで更新されたままになります。

ReactAPIの最新バージョンを使用する

私たちは長い間React15バージョンをサポートしてきましたが、コミュニティのフィードバックから、これは実際には重要ではありません(React 15の問題数は0%に近づいています)。 React自体は非常に堅牢な互換性があるためです。 React 15をサポートするために、開発プロセス中の新しいAPIの使用には細心の注意を払っています。バージョン4.0以降、開発のベンチマークとして最新のReactバージョンを使用します。

  • 関連コンポーネントのフックバージョンを提供する
  • コンカレントモードをサポートします(もちろん、準備するものは他にもあり、4.0リリースでも引き続き調整されます。)
  • React 17を受け入れる(すごい!〜)

IE9 / 10のサポートを停止する

Ant Design 3.0は、古いバージョンのIEとの

その他の互換性調整

  • Less2.xからLess3.xにアップグレードします
  • アイコンの使用法の変更
  • 廃止された言及

📦音量を下げる

アイコンサイズを最適化する

[email protected]で、svgアイコンを導入しました(なぜsvgアイコンを使用するのですか? )。文字列の名前を付けてアイコンを設定するためのAPIを使用します。この設計では、オンデマンドでロードできないため、すべてのsvgアイコンファイルを導入しました。これにより、パッケージ製品のサイズが大幅に増加します。 4.0では、ボリュームを最適化するためにこれを調整します。

アイコンの使用法の古いバージョンは廃止されます:

import { Icon, Button } from 'antd';

const Demo = () => (
  <div>
    <Icon type="smile" />
    <Button icon="smile" />
  </div>
);

4.0では、オンデマンドの導入方法が採用されます。

// Directly import
import SmileOutline from 'antd/icons/SmileOutline';

// If tree-shaking supported
import { SmileOutline } from 'antd/icons';

const Demo = () => (
  <div>
    <SmileOutline />
    <Button icon={<SmileOutline />} />
  </div>
);

上記の互換性のある方法を引き続き使用できます。

Draft.jsを削除します

ドロップダウンプロンプトポジショニング機能を実装するために、メンションコンポーネントにDraft.jsを導入しましたが、その機能のごく一部しか使用しませんでした。コストパフォーマンスの観点からは、少し無駄に思えます。 4.0で依存関係を削除し、代わりに軽量のソリューションを使用する予定です。同時に、3.0のMentionコンポーネントを区別するために、APIの競合を防ぐための新しいコンポーネントMentionsを提供します。同様に、上記の互換性のあるメソッドの継続的な使用もサポートします。

// Follow Code will not work
import { Mention } from 'antd';

const Demo = () => (
  <Mention />
);
// Added `Mentions` in 4.0
import { Mentions } from 'antd';

const Demo = () => (
  <Mentions />
);

🧭パフォーマンスの最適化

メンテナンスの過程で、ビッグデータに関するパフォーマンスについて多くの

仮想スクロール

仮想スクロールは一般的な最適化方法ですが、Ant Designのアニメーション効果のため、仮想スクロールをカスタマイズするのはそれほど簡単ではありません。現在、スクロールを使用するコンポーネントで仮想スクロールをネイティブにサポートする予定です。もちろん、4.0のリリース時にすべてのコンポーネントが更新されたことを保証するものではなく、今後も更新されます。

アニメーションの改善

以前は、アニメーションを処理するためにいくつかのハックを使用していました。ほとんどのシナリオで、それは非常にうまく機能します。 4.0では、これを調整し、よりReactロードへのハックアプローチを放棄する予定です。調整はサイレントに更新されるため、変更を加える必要はありません。

🧩コンポーネントについて

3.0では、多くのコンポーネントを追加し続けています。 4.0では継続します。これらのコンポーネントは、ビジネスシナリオ、Ant Design Pro、およびコミュニティのニーズから洗練されます。これは継続的なプロセスです。新しいコンポーネントを追加するプロセスは、Ant Design 3.0と同じです。関連コンポーネントのデザインドラフトを作成し、PRで表示して、公式Webサイトで更新します。開発が完了したら、月次マイナーバージョンでリリースされます。

さらに、開発と相互作用の容易さを改善するために、いくつかの主要なコンポーネントをリファクタリングする準備もしています。これには以下が含まれますが、これらに限定されません。

フォームコンポーネント

フォームコンポーネントのオーディエンスは非常に多く、面倒なフォームAPIに関するコミュニティの不満にも気づきました。4.0では、開発コストを簡素化するために、より優れたAPIフォームを検討したいと考えています。

  • フォームはデフォルトでフォームデータフィールドを集約し、 Form.create()介してコンテキストを作成する必要がなくなりました。
  • Fom.Itemはデフォルトでフォームフィールドを集約します。 getFieldDecorator介してフィールドをバインドする必要はありません。
  • Form.Itemの値は常に保持されますが、その検証機能は、フォームアイテムが表示されている場合にのみ有効になります。
const Demo = () => {
  const [form] = Form.useForm();

  const onFinish = () => {
    // Do something...
  };

  useEffect(() => {
    // Something like ajax call
    form.setFieldsValue({
      username: 'light',
    });
  }, []);

  return (
    <Form form={form} onFinish={onFinish}>
      <Form.Item name="username" rules={[{ required: true }]}>
        <Input />
      </Form.Item>
    </Form>
  );
}

実際のシーンでは、マルチフォームリンケージ(詳細構成で一般的)のシーンに遭遇しました。これは使い勝手が悪いことがわかっているので、フォーム間のリンク機能も提供します。

const { useForm, createContext } = Form;
const FormContext = createContext();

const Demo = () => {
  return (
    <FormContext>
      <YourForm1 />
      <YourForm2 />
    </FormContext>
  );
};

フォームの進行状況を確認したい場合は、進行状況を確認してください。

テーブルコンポーネント

過去のバージョンでは、テーブルコンポーネントについて多くのフィードバックを受け取りました。 Tableのexpandおよびscrollプロパティは、これまでうまく機能していなかったことがわかっています。今回は、この分野での対立の解決に焦点を当てます。さらに、テーブルコンポーネントのパフォーマンスをさらに最適化します。そして、いくつかのより単純なテーブルレイアウト方法を調べてください。

const Demo = () => {
  return (
    <Table
      header={{
        templateAreas: `
          name    address     address
          name    building    no
        `,
        cells: [
          { key: 'name', title: 'Name' },
          { key: 'address', title: 'Address' },
          { key: 'building', title: 'Building' },
          { key: 'no', title: 'No' },
        ],
      }}
    />
  );
};

antd4-table

さらに、サマリー要件をサポートするためにサマリーフッターを追加する予定です。

DatePickerがやり直しました

既存のDatePickerはほとんどのニーズを満たしていますが、コミュニティの議論からディスカッション)。さらに、関連する日付と時刻のセレクターのスタイルを調整して、ユーザーの認知コストをさらに削減します。

🚀継続的に更新

上記のコンテンツに加えて、一部のコンテンツも引き続き更新する予定です。これは4.0でフォローアップされ、ユーザー開発とユーザーエクスペリエンスが向上します。

🧶アクセシビリティエクスペリエンスを向上させる

Ant Design 3.0はアクセシビリティエクスペリエンスのサポートを欠いています。このため、コンポーネント構造を調整し、画面の読み取りエクスペリエンスを向上させるためにariaタグを追加する予定です。さらに、既存のコンポーネントのキーボード操作方法を最適化して、完全なキーボード操作エクスペリエンスを向上させる準備もしています。

🎯開発者API仕様

進化の過程で、いくつかのAPIスタイルが他のコンポーネントと互換性がないように見えることがわかりました。 TypeScriptユーザーの場合、これは問題ではありませんが、他のユーザーの場合、メモリの問題を引き起こす可能性があります。

そこで、標準の命名文書をまとめます。このドキュメントには、既存のAPIと適切な命名規則のリストが含まれます。新しい機能を追加するときは、この仕様に従って名前も付けられます。将来起こりうるAPIの違いを避けるため。もちろん、PRのコミュニティ学生からのフィードバックも歓迎します。

💼厳密モードに反応する

<React.StrictMode> antdコンポーネントの外にラップしようとすると、antdコンポーネントから多くの警告メッセージが表示されます。 3.0では、一部のコンポーネントのライフサイクルメソッドを更新しました。 4.0では継続します。

💡開発者のエクスペリエンスを向上させる

過去のメンテナンスプロセスでは、特定の問題が前後に発生することがわかりました。これらの問題は、一部の使用仕様またはアプリケーションシナリオで一般的です。この目的のために、ここで改善を行うことにしました(実際、3.0以降、改善を続けています)。開発環境では、予期しない状況(無効なモーメントオブジェクト、入力プレフィックス/アフィックスの動的調整によって引き起こされるDom構造の変更など)についてコンソールでプロンプトが表示されます。コンソールは、開発者が問題に遭遇したときに最初に注意を払う場所であると確信しており、ここで適切なヒントを提供すると、問題をすばやく特定するのに役立ちます。同時に、いくつかの特別な使用法またはシナリオのために。対応するコンポーネントのドキュメントでFAQを提供します。プロジェクトのメンテナンスの観点から、私たちのエネルギーは使用法の問題に詳細な答えを提供することはできません。しかし、これらの質問は現実のものであり、特に初心者の開発者にとっては、FAQは検索時間を大幅に節約するのに役立ちます。興味のある方は、コミュニティのボランティアも開発者のエクスペリエンスの向上にご協力いただけます。

🐱設計資産管理

Ant Designは、コンポーネントライブラリのセットであるだけでなく、その背後にある強力な設計システムでもあります。 4.0では、最新のデザイン関連アセット(スケッチコンポーネントパッケージ、キッチンツールセット、デザイントークンなど)を更新して、デザインに関心のあるデザイナーや学生が参考になるようにします。既存のコンポーネントデザインスタイルも微調整され、視覚効果とユーザーエクスペリエンスが向上します。

タイムプラン

以下は、いくつかのコンポーネントの更新が進行中のスケジュールです。 githubで関連する問題を作成し、コミュニティのボランティアも参加できます。

Q2

  • 必要な非推奨APIを非推奨としてマークし、ドキュメントでクリアします。
  • 基礎となるコンポーネントは予熱されています。

Q3

  • antd 4.0ブランチを確立し、ドキュメントを更新します。
  • 低レベルのコンポーネント開発。

Q4

  • リリース4.0バージョン。

参加へようこそ

4.0の開発プロセス中に、上記の内容が調整される場合があります。コミュニティの学生を歓迎して、貴重なアイデアや提案を提供してください。AntDesign4.0をより便利で使いやすくしましょう!

4.x ✨ Announcement 🕙 Plan 🗣 Discussion

最も参考になるコメント

15311

バージョン4でMoment.jsを置き換えますか?

全てのコメント182件

15311

バージョン4でMoment.jsを置き換えますか?

すばらしい、アップグレードが待ちきれない

V4アルファ準備

主にターゲット

  • [x] v4ブランチ
  • [x]互換性のあるパッケージ
  • [x]非推奨のコンテンツを削除する

    • [x]メンションコンポーネント

    • [x]新しい言及コンポーネント#16532

    • [x] Form.create

    • [x] type #12011のアイコン

    • [x]非推奨の警告小道具を備えたその他

  • [x]少ないv3
  • [x]パフォーマンス

    • [x] rc-animateアップグレード

    • [x]並行モードのサポート

    • [x]仮想スクロールアニメーションのサポート

    • [x]仮想スクロール

    • [x] rcコンポーネント

    • [x]ツリー

    • [x]選択

    • [x] TreeSelect

    • [x]フォーム: https

    • [x]フックバージョンを提供します

    • [x]テーブル

    • [] templateAreas

    • [x] expandscrollコワーキングをサポート

  • [x]新しいデザインのDatePicker

    • [x] YearPicker

    • [x] RangePicker.YearPicker

    • [x] RangePicker.MonthPicker

    • [x] RangePicker.YearMonthPicker

    • [x] RangePicker.WeekPicker

    • [x] TimePicker.RangePicker

ターゲットを継続

  • []アクセシビリティ
  • [x] API標準
  • [] React.StrictMode

Ant4に関するいくつかの提案があります

templateAreas

templateAreaは実行時に文字列を解析します。文字列のタイプミスが発生すると、例外のない解析エラーまたは傾斜エラーが発生します。 ランタイム解析もTypeScriptには不向きです。 Antチームは以下の提案を検討しますか?

const columnTemplate = [
  ['name', 'address', 'adress'],
  ['name', 'building', 'no']
]

依存について

Antチームはmoment依存を取り除くことを検討しますか?

モーメントはフロントエンドプロジェクトには大きすぎます。多くの選択肢がありますが、 TimePickerDatePickerの小道具はモーメントを中継します。 momentdate-fnsまたはMomentよりも小さい他のライブラリに置き換えることはできません。

アイコンについて

現在使用されているAntアイコンの方法は廃止されるべきではないと思います。アイコンをインポートする新しい方法では、1つのアイコンを追加または削除すると、一般的なバンドルチャンクが変更される可能性があります。

Antチームは、Antアイコンを使用する2つの方法を提供できます。

  1. すべてのアイコンを1つのjsfileにパッケージ化し、開発者は<script>タグを使用してファイル全体をインポートし、webpackにexternalsを設定できます。
  2. 上記を紹介する新しい方法。

改善我対Ant4的一多建议

templateAreas

templateAreas在运行時間対文字列

const columnTemplate = [
  ['name', 'address', 'adress'],
  ['name', 'building', 'no']
]

関赖

是否考虑移除対モーメント的依赖?

モーメント対前端项目来時在是太大了、市面上有许多可供難代的库、しかし是TimePickerDatePicker的参数依赖到モーメント対象、今導致了我们没办法使用date-fnsまたは者一価比モーメント更小的库来図書館代モーメント。

関連するアイコン

我认为当前使用アリ图标的方式不应该被废弃。新的使用方式在我新增或者删除一个图标引用的时候、可能会导致公共チャンク反复变更。

Ant团队的チーム如下两種方案来使用Ant

  1. 打包所有图标到一个JS文件中、开发者通过<script>标签引用全部图标、并且在WebPACKの中设置为externals
  2. 4.0新介绍的アイコン使用方法

テーブルの仮想スクロールをサポートする計画はありますか? ページネーションよりも無限テーブルの方が望ましい場合があります。
そして、「コメント」は3.11に含まれているので、おそらくChatBoxとChatMessage?

テーブルの仮想スクロールをサポートする計画はありますか? ページネーションよりも無限テーブルの方が望ましい場合があります。
そして、「コメント」は3.11に含まれているので、おそらくChatBoxとChatMessage?

UserInfo多分優先順位。

templateAreas

2次元配列の構文もサポートしています
2次元配列の構文もサポートしています。

templateAreasに関して、静的チェックの例を次に示します。
これは、templateAreasにtsを使用したタイプ静的チェックの例です。

interface Cell<T extends string = string> {
  key: T;
  title: string;
}

interface Config<K extends string = string> {
  header: {
    templateAreas: ReadonlyArray<ReadonlyArray<K>>;
    cells: ReadonlyArray<Cell<K>>
  };
}


declare function check<T extends string>(config: Config<T>): void;

const config = {
  header: {
    templateAreas: [
      ['name', 'address', 'address'],
      ['name', 'building', 'error'],
    ],
    cells: [
      { key: "name", title: "Name" },
      { key: "address", title: "Address" },
      { key: "building", title: "Building" },
      { key: "no", title: "No" }
    ]
  }
} as const;

check(config);

遊び場

image

驚くばかり

15311

バージョン4でMoment.jsを置き換えますか?

momentから離れる主な問題は、 locale前後の変化を壊すことだと思います。 https://github.com/ant-design/ant-design/issues/15311#issuecomment -471383811

typescriptのサポートが改善されることを願っています

素晴らしい4.0が進行中です! 以下に検討すべきいくつかの提案があります。それらがデザインパターンに適合するかどうかはよくわかりませんが、カスタマイズ性のために、私の意見では素晴らしいでしょう。

  • <Table>内の行の背景色を制御できること。 たとえば、行をオレンジ色に色付けして、その行の警告を強調表示します。
  • ボタンの色は、これに関する以前の議論は見つかりませんでした。 ただし、ボタンの<Tag color="red">RED<Tag />と同様のAPI(例: <Button color="red">Red Button<Button/>です。
  • Font-Awesome 5.xアイコンのサポート(さまざまなコンポーネント内)、または他のアイコンが進行中と連携することを確認します。 ネイティブの<Icon>コンポーネントの代わりにFAを使用すると、配置に問題があることに気付きました。
  • <Pagination>コンポーネントは、ページ数を直接提供することをサポートしていません。ユースケースでは、たとえば、使用できるページ数と現在のページのみがあり、各ページ内のアイテム数はサポートされていません。 私はこれを処理する良い方法をまだ見つけていません。

@ore​​cus

たとえば、行をオレンジ色にして、その行の警告を強調表示します

私はrowClassNameを使用してこの行にクラスをアタッチし、デフォルトのスタイルをcssでオーバーライドする傾向があります。

ザ・コンポーネントは、ページ数を直接提供することをサポートしていません

偽の合計を渡すことができます。 たとえば、50ページが必要な場合は、 total = pageSize * 50渡すことができます。

これは本当に良いニュースです🚀一部のコンポーネントは大量のデータでは使用できないため、パフォーマンスへの注目が明らかになり、それは素晴らしいことです。

仮想スクロールをどのように実装しますか? react-windowますか?

主にターゲット機能の優先順位はありますか?
アルファ段階でバーチャルセレクトを試してみたいのですが、これは私だけではないと思います。

ありがとう。

文字列名をオンデマンドで読み込めないのはなぜですか? reactのlazy()は問題を解決しませんか?

@faradaytrs
はい。ただし、 webpackの特性、特定の操作によって異なり

2つの問題がより顕著です

  • /* webpackChunkName: "icons/icon-" */で書かれたwebpack提供Magic Comments
  • オリジナルが言ったように、「各アイコンには、アイコンの内容に加えて、追加のWebpackモジュール情報が含まれています」

グローバルスタイルの汚染について何か考えはありますか? #4331#9363

グローバルスタイルの汚染について何か考えはありますか? #4331#9363

私見では、4.0でユーザーがグローバル名でantdesignスタイルのスコープを設定できるようになると便利です(私のコメントhttps://github.com/ant-design/ant-design/issues/4331#issuecomment-396047487を参照)

次のマイルストーンについて聞いてうれしいです!

私の2カラット。 ドキュメントと合理化に関して:

多くの場合、ドキュメント化されていない、基になるDOM要素に渡される小道具があります(IIRC場合によっては、コンポーネントの実装によって選択されないすべての小道具が渡されます)。 それらを文書化して、ターゲット要素ごとにグループ化すると非常に役立ちます(複数ある場合があります):「次の小道具がコンテナに渡されます

"または"次の小道具が通過します element ...」または「他のすべての小道具は...に渡されます。」これらの小道具については、詳細な説明は必要ありません。MDNへのリンクで十分です。

このような変更は、TypeScript開発者にとっても素晴らしいことです。現在、この点でTS定義を最新の状態に保つのは面倒な作業です。

「DeveloperAPI標準」では、これを文書化する必要があり、どの小道具を常に渡すかを決定する必要があります(className、id、?)

別の質問:

より多くのファイル(またはrcコンポーネント)をTypeScript定義のJavaScriptからネイティブTypeScriptに切り替えることを計画していますか?

rc-formをFormikなどのより柔軟なものに置き換えることを検討してください。

メンテナへの質問:

私のチームはAntの試用に興味がありますが、

IE9 / 10だけでなく、IEサポートを停止します。

おやおや、グローバルスタイルを汚染しないのはとても便利でしょう( htmlbody*::before 、...)

react-slickをベースにしたカルーセルは、使用時に多くの問題があります。新しいバージョンを別のライブラリに置き換えることをお勧めします。
反応パン可能は使用するのにかなり良いです

@cztfloveこのライブラリのコミットの説明はすべてno message 😃であり、コミュニティの注目は低すぎるので、私はそれを考慮すべきではありません。

@ yoyo837 @ yoyo837の主要コンポーネントは新しいため、注目度は比較的低いですが、 virtual list仿ios边缘弹性サポートしており、このコンポーネントに基づいて、いくつかの拖拽関数を実現できます🤔将来的には拡張の余地があります

1つの世界共通言語に移行すべきではありませんか?

私は英語を母国語としない場合でも、地域の言語に完全に同意し、尊重します。 何百もの繰り返し、または二重言語で重複するタスクを言う方が良いですが、とりわけ最も重要な要素は時間、議論された文字列の翻訳、ドキュメントやタットからの学習です。 デモなど

私は認めなければなりません、言語の衝突のために貢献者が不足しているわけではありません、それでも私たちの何百人もが関与することを恐れています。 すでに多くのスプリント、翻訳の問題が進行中ですが、私が要求するのは、このメジャーリリースで1つのユニバーサル言語に完全に移行して、私たち全員の間のコミュニケーションギャップ

1つの世界共通言語に移行すべきではありませんか?

私は英語を母国語としない場合でも、地域の言語に完全に同意し、尊重します。 何百もの繰り返し、または二重言語で重複するタスクを言う方が良いですが、とりわけ最も重要な要素は時間、議論された文字列の翻訳、ドキュメントやタットからの学習です。 デモなど

私は認めなければなりません、言語の衝突のために貢献者が不足しているわけではありません、それでも私たちの何百人もが関与することを恐れています。 すでに多くのスプリントがあり、翻訳の問題が進行中ですが、私が要求するのは、このメジャーリリースで1つのユニバーサル言語に完全に移行して、私たち全員の間のコミュニケーションギャップを減らすことです。

解釈、专心述中文吧

メンテナへの質問:飛行中の色やスタイルのテーマを変更するためにCSS変数を使用する計画はありますか?

実際に、変数を使用してコンポーネントのスタイルを変更することは非常に快適な方法であることを学びました。 Less変数をvar(--css-vars)で書き直そうとしましたが、スタイルのコンパイルで多くのエラーが発生しました。多くのスタイルが、値だけでなく、変数を使用した関数や操作を使用しているためです。 私はそれが大きな仕事であり、この方法で重大な変更を作成すると思いますが、メジャーバージョンは重大な変更のために作成されました:)そしてCSS変数の使用法はコンポーネントスタイルのカスタマイズの多くの機会を与えることができます。

あなたはそれについてどう思いますか? とにかくプルリクエストとしてCSS変数を使用してテーマを開発することを計画しました。この機能(飛行中のテーマの変更)が私のプロジェクトで必要になるためです。

申し訳ありませんが、その提案が重複している場合は、他の問題やPRでそれについて何も見つかりませんでした。

@ Z3SA https://caniuse.com/#search = CSS%20Variables。 これはすべてのIEサポートを停止する必要があります。IE11サポートの停止は過激すぎますが、私もそうすることをサポートしています。

@ yoyo837 、IEサポートの問題の根本的な原因であることに同意します。 しかし、Ant Designは、Electron(Webではなく分離されたプラットフォームとして)の公式サポート(ant.designで述べられている)も持っています。 この場合、2つのテーマを作成する方法があるかもしれません。1つは少ない変数を使用し、もう1つはCSS変数を使用します。 しかし、サポートするのは難しすぎるようです。

したがって、私が推測する他の可能な戦略-Lessのすべてのカスタマイズ可能な属性に対してLess変数を作成するか、開発者がCSS変数のエントリとして使用できるLess変数の下の関数と操作の使用を削除します。 または、もっと単純だと言えば、関数や操作ではなく、値のコンテナーとしてのみ少ない変数を使用します。

主要なブラウザのみをサポートしていれば、コードのサイズが小さくなり、コードの保守が容易になると思います。

IE9 / 10だけでなく、IEサポートを停止します。

@wanliyunyanあまりにも壊れています。 一部の開発者はantd @ 3に固執する可能性があり、それは私たちにとって良いことではありません。

@ Z3SAそれは

@dancerphil幸いなことに、私は自分のプロジェクトで

@ yoyo837私はそれを知っています。 そして、このアイデアが十分な注目を集めることができなかった場合、私は自分でそれを行います。

私たちは、個々のコンポーネントを使用して徐々にantdに移行したいと考えている会社です。 ただし、antがグローバルスタイルを使用すると、この問題は非常に複雑になります。 グローバルスタイルの汚染を止めてください。

フォームは、最も使用されるコンポーネントの1つです。 ソーシャルにはAPI設計について多くのコメントがあることに気づきました。 4.0でAPIを簡素化したいと思います。

Fom.Itemにはフィールドバインドが含まれます。

これらの変更により、Form.Itemを厳密に表示するコンポーネントとして使用できるようになりますか? 私はantdのコンポーネントが大好きですが、状態管理にはreact-final-formを好みます。 Form.Itemのスタイルが必要であり、状態管理ロジックは必要ありません。

ブランチ4.0が作成されます。 いつプレビューできますか

新しいフォームコンポーネントは素晴らしいです!

momentjsが巨大になり、バンドルサイズも大きくなったため、momentjsをdayjsに置き換えてください。

リッチテキストエディタの引き継ぎを検討する際の落とし穴はありますか?

リリース日はいつですか?

@rafaelodassiまだ確認された日付はありませんが、おそらく第4四半期にあります。

@babel/runtime@7core-js@3へのアップグレードも優先されます。

v3ではありませんか? core-js@4ニュースはありますか?

統計ではほとんど使用されていないことが示されているため、IEサポートを完全に削除することについて話している人は誰でもいます。 イントラネットの背後にいる何百万人もの企業ユーザーが統計にまったく関与していないのはどうですか? 彼らは企業方針のためにIE10とIE11で立ち往生しています。

IE11のサポートが終了した場合は、 antd @ 3を使用します。 IE10のドロップは、MSでサポートされなくなり、企業のPCがIE11に更新されるため、ほとんどのクライアントで受け入れることができます。

オブジェクトを<Select/>値として使用できるようにするAPIを導入することをお勧めします。
詳細については、 https://github.com/ant-design/ant-design/issues/13485を参照して

cc @zombieJ

各コンポーネントに独自の更新ログを設定することをお勧めします。非表示にしておくかどうかは関係ありません。個人的な提案〜

リリースまたはRCはいつ可能ですか?

各コンポーネントに独自の更新ログを設定することをお勧めします。非表示にしておくかどうかは関係ありません。個人的な提案〜

各コンポーネントのドキュメントをどのバージョンで追加できるかについて同意します。それ以外の場合は、ドキュメントを参照して、現在のバージョンを使用できるかどうか、および依存関係を更新するかどうかを確認できます。

GitHawkで送信

@ fwh1990 @ jas0ncn @redclown
英語のpls)

英語チャンネルとして保管してください、ありがとう〜

4.0alphaが公開されました。 それはすごいです。 兄弟に来なさい。

ベータ版を公開したら、プロジェクトをリファクタリングします

antdのデフォルトのテーマは美しいですが、それよりも優れている場合もあります。
読みやすくするために、コントラストの強化を検討し、より大きなテキストを使用してください。

非常に多くの記事やツールがあります。
https://www.google.com/search?q=web+readability

antd v3をv4に移行するためのスクリプトを提供することをお勧めします。

bizプロジェクトでは、フォームコンポーネントが多すぎます。 antd v3からv4への移行に

react-relayチームは同様のことをしました。
react-relay v3をreact-relayv4 Realeaseに移行する場合は、多くのファイルを変更する必要があります。
そのため、彼らはjscodeshiftを使用して移行スクリプトを記述し、 react-relayのユーザーがreact-relay v3からv4に簡単に移行できるようにします。

いくつかのスタイルを覆すのは難しいと思います。 それで、それを改善する計画があれば?

私は個人的にCSS-in-JSを使用することを好みます。それは非常に柔軟性があり、Reactと非常によく合います。

4.0 alphaでクラスコンポーネントを使用する場合、フォームエンティティを取得できません。https: //5d403395cd145c0008eea971--ant-design.netlify.com/components/form/v3-cnこのリンクの下のサンプルコードは実装できず、formRefにエンティティがありません。方法

で解決しました

@ Kwei9 、問題を開いて添付して再現できますか?見せてください

@ Kwei9 、問題を開いて添付して再現できますか?見せてください

参照書き込みはこのソリューションに変更されます

今こそ、地球規模の汚染に取り組む時だと思います! これにより、他のアプリケーションと一緒にantdを使用する必要がありました。

Momentはフロントエンドプロジェクトには大きすぎます。多くの選択肢がありますが、TimePickerとDatePickerの小道具はMomentを中継します。 それは私たちが瞬間を置き換えることができないように導きます...

@ jas0ncnこんにちは、momentjsをdayjs(2kbの代替)に置き換えることを検討してください。 これらは、Ant Design(Antd)のReplaceMoment.jsをDay.jshttps //github.com/iamkun/dayjs/issues/529でテスト済みの問題であり、非常にうまく機能します。

dayjsのコアメンテナーとして、私たちはこの交換についてどんな助けも喜んで提供します。

ありがとう。

请考虑使用轻量的Dayjs来交換换moment.js、在この里已经これは试オーバー落换的可行性https://github.com/iamkun/dayjs/issues/529

古いアイコンの使用方法は*非推奨になります*:

import { Icon, Button } from 'antd';

const Demo = () => (
  <div>
    <Icon type="smile" />
    <Button icon="smile" />
  </div>
);

4.0では代わりにimportsingleIconを使用します。

// Directly import
import SmileOutline from 'antd/icons/SmileOutline';

// If tree-shaking supported
import { SmileOutline } from 'antd/icons';

const Demo = () => (
  <div>
    <SmileOutline />
    <Button icon={<SmileOutline />} />
  </div>
);

新しいアイコンの参照について考えています。上記の新しい表現により、各アイコンは個別のコンポーネントに相当します。たとえば、読み込みアイコンの導入は次のようになります。

import Loading from 'antd/icons/Loading';

<Loading />

ただし、通常は、実際の読み込みコンポーネントを自分でカプセル化することができます。以前は、 <Icon />はそれがアイコンであることが一目でわかりましたが、今では名前が多すぎて、アイコンかどうかを知りたい場合はインポート場所を見つける必要があります。
といった:

<Title />
<Loading />
<Sun />  

一見、次の2つはアイコンとして見えないようです(もちろん、コードの実行には影響しません〜)
次の文言に変更した場合:

 import {Icon} from 'antd';
 import {Loading, Sun} from '@antd/icons';  

<Icon spec={Loading}  {...otherProps}/>
<Icon spec={Sun} />

パンの外層を通して、それは前のものと非常によく似ており、オンデマンドで使用することもできます。それはアイコンコンポーネントを導入することに他なりません。
また、特定の規則が満たされている場合、ユーザー定義のアイコンをspec属性を介して渡すことができますか?これは、事前に多くのアイコンを定義するのに役立つantdと同等ですが、ユーザー定義のアイコンはまったく同じです~~~

ps:それとも、この種の執筆は実際にはずっと前に考えられていたのですか、それともこの種の執筆に問題があるために考えていなかったのですか? 。 。 😂
考えただけです。 。 。

@ppblは、あなたの考えによると次のようになります。

import Icon from '@antd/icons'; 
imoort { LoadingOutline } from '@antd/icons-svg';

<Icon component={LoadingOutline}  {...otherProps}/>

新しいアイコンも同様に生成されます。https://github.com/ant-design/ant-design-icons/blob/master/packages/icons-react/src/icons/AccountBook.tsxを参照して

Iconの名前にIconプレフィックス/サフィックスを追加することでこの状況を回避できますか?

imoort { LoadingOutlineIcon } from '@antd/icons';

<LoadingOutlineIcon  {...otherProps}/>

バンドルサイズの縮小に取り組んでください
https://github.com/ant-design/ant-design/issues/9419
Buttonをインポートすると、プロジェクトに95kbが追加されます。これは2019年には受け入れられません。👎

@vagusXたぶん、名前が少し長いと思いますか?名前は簡潔で、小さなコンポーネントまたは比較的単一のコンポーネントのように見えるといつも思っています。名前が長すぎる場合は、大きなコンポーネントにする必要があります(もちろんこれは間違った感じです〜私は知っています)。 。 〜

もちろん、 <Icon />を見るためだけのアイコンであることがわかっている場合は、自分で<Icon />コンポーネントを作成し、それを使用するときにantdアイコンをラップすることもできます。効果はほぼ同じです。 〜すべてアイコンだと感じますが、実際には散らばった名前がたくさんあります。少し奇妙に感じます。違いは、以前はアイコンを最初に知っていて、次にそれがどのタイプであるかを知っていたということです。今では最初にタイプを知ってから、ああ、それはアイコンです〜

@ avalanche1このPRhttps //github.com/ant-design/ant-design/pull/18217#issuecomment -520683838からのバンドル分析結果、およびコンポーネントのサイズButton明らかに衰退する

知っておくと良い。 しかし、あなたのスクリーンショットには実際のサイズの表示がないので、私は確認も反証もできません。

Formを新しいAPIに移行しますが、 field-formのバージョンが不安定であることがわかったので、将来、これらのインターフェースで重大な変更が行われるかどうかを知りたいと思います。

@orzyyyy
antdは、社会的および内部のボランティアがテストできるように、 4.0-alpha.xバージョンをリリースします。 アルファ版からの否定的なフィードバックがない場合、このAPIはリリース時の最後のAPIになります。

@ avalanche1 @ant-design/icons v4-alphaバージョンはツリーシェイクをサポートしているため、バンドルサイズは、アイコンを内部的にインポートするantdコンポーネントを使用するか、 @ant-design/iconsを使用するかにかかわらず、プロジェクトで使用したアイコンの量によって異なります。

最初の投稿がボタン、カレンダー、その他のコンポーネントに関するものだったのに、なぜアイコンについて話しているのですか? https://github.com/ant-design/ant-design/issues/9419

DatePickerの値はモーメントである必要がありますが、モーメントを削除できますか? fromを更新する場合は、モーメントに変換する必要があります

moment 、これが私の考察です。 DatePickerは、互換性要件以降、デフォルトでmoment引き続き使用しますが、他のdatelibで作成するファクトリ関数を提供します。

import DatePicker, { createPicker } from 'antd/lib/date-picker';

import dayjs from 'dayjs';

const basicDemo = <DatePicker />

const MyDatePicker = createPicker(dayjs, {
  // Some proxy function, maybe can provided by default...
  format(dayObj, formatStr) {
    return ...;
  },
  parse(str, formatStr) {
    return ...;
  },
});

const dayDemo = <MyDatePicker />;

考えただけで、議論を歓迎します。

今がmoment.jsを取り除く時です!

  1. Moment.jsは、複雑なOOP APIであるため、ツリーシェイク可能になるません。 (彼らはそれを最初から書き直す必要があるでしょう)。 これは、antdとユーザーにとって大きなオーバーヘッドです。

  2. Ant Design v4はメジャーリリースであり、すでに重大な変更が加えられています。 今がその時だ!

  3. 別のライブラリに置き換えないことをお勧めします。 Antdは、内部でdayjsdate-fnsような小さなものを使用する場合がありますが、そのコンポーネントにネイティブのDateオブジェクトまたは文字列を受け入れる必要があります。

moment()を呼び出すたびに、子犬は死にます。

:犬:

@zombieJは、テーブルコンポーネントの進行状況を知りたいのですが、フォームのようなプレビューバージョンはありますか?全部でほとんど嘔吐しました😂

アルファ版にはすでに新しいテーブルが含まれていますか? もしそうなら、プレビューウェブサイトはそれの例を含むべきですか?

テーブルはキューにあります。現在、仮想リストで作業しています。

スタイル付きコンポーネントのサポートはどうですか?

フォームのinitialValuesはmoment設定しません。 https://github.com/react-component/field-form/blob/master/src/interface.ts#L7

Formが、Excelのような大きなフォームのパフォーマンスの問題を解決するための制御されていないバージョンを提供できることを願っています。

アルファ版のドキュメントを通常のAntドキュメントサイトに移動できる可能性はありますか?

私の雇用主はNetlifyドメインをブロックしており、他の人も同様にブロックしていると思います。

メニューとドロップダウンでのキーボード操作をサポートする具体的な計画はありますか?

アルファ版のドキュメントを通常のAntドキュメントサイトに移動できる可能性はありますか?

私の雇用主はNetlifyドメインをブロックしており、他の人も同様にブロックしていると思います。

どうして? 笑

TableコンポーネントがElementのTableコンポーネントに似ていることが望まれます。各列が最初に自動的に幅を設定します。テーブルのヘッダー文字を行変更ではなくmin-widthに変更することをお勧めします。折り畳みが望まれます。スクロール機能とスクロール機能を同時に使用できます。複数選択した場合、ツリー型のテーブルがTreeSelectに似ていることが望まれます。

TableコンポーネントがElementのTableコンポーネントのようになることを願っています。各列は最初に幅で自動的に設定されます。テーブルヘッドの文字を折り返さずに最小幅に変更することをお勧めします。折りたたみ機能とスクロール機能を同時に使用できることを願っています。複数の選択を行うときにツリーテーブルが使用されることを願っています。 、TreeSelectに類似することができます

v4またはおそらくv5で、カスタマイズについて何かをする可能性はありますか? MaterialUIはカスタマイズがはるかに簡単で、AntDの方がはるかに完成度が高いため、本当に使用したい場合でも、作業中のプロジェクトに選択できます。
カスタマイズのためにより良いもののためにドロップを少なくしてください。

代理店にantdWebアプリのテストを依頼した後、彼らは深刻なアクセシビリティの欠陥を特定し、可能な限り最悪の成績を得ました。 主な理由を調査すると、次のrcコンポーネントに要約されます。

  • rc-select(Downshiftに置き換えて、antdスタイルを上に適用する必要がありました)
  • rc-tabs(#18798を参照)
  • そして多分私達が今まで使用しない他のもの

antdはrcコンポーネントに対してどの程度のガバナンスを持っており、チームは4.0リリースでこれをタイムリーに修正できますか? アクセシビリティは常に比較的優先順位が低くなりますが、実際には、企業が従業員/顧客にアクセシブルなアプリを提供することが法的に義務付けられるようになるにつれて、アクセシビリティを無視することはますます難しくなっています。

スクリーンリーダーを使用したいくつかの重いテストと、ベストプラクティスに対するベンチマークについて私を数えることができます。

MaterialUIはカスタマイズがはるかに簡単です

@murbanowicz詳しく教えていただけますか? なぜそう思うのか気になります。

@abenhamdine問題ありません!
MUIにはThemeProviderあり、アプリをラップして、TypeScriptで入力されたJSオブジェクトだけでテーマ全体を構成するので、作業がとても便利です。

AntDをカスタマイズするには、LESSまたはSASS(一部のプラグインを使用)をいじる必要があるため、他のdepなどを維持する必要があります。コンポーネントのソースを調べて、特定のコンポーネントなどに変更する変数を見つける必要があります。
また、サーバーなどから簡単に入手できるJSオブジェクトを切り替えるだけでは、MUIで簡単に実行時にテーマを変更する良い方法はありません。

基本的に、AntDとMUIのカスタマイズを探すとき、MUIは簡単なので話すことがないので簡単な例を見つけますが、AntDのカスタマイズをグーグルで検索すると、ハッキーなソリューションなどがたくさん見つかります。

私はAntDの完成度と非常に多くの優れたコンポーネントが大好きですが、カスタマイズは非常に悪く、私の経験と他の開発者との話し合いに基づいて、ロードマップの重要なポイントの1つになるはずです。

@abenhamdine問題ありません!
MUIにはThemeProviderあり、アプリをラップして、TypeScriptで入力されたJSオブジェクトだけでテーマ全体を構成するので、作業がとても便利です。

AntDをカスタマイズするには、LESSまたはSASS(一部のプラグインを使用)をいじる必要があるため、他のdepなどを維持する必要があります。コンポーネントのソースを調べて、特定のコンポーネントなどに変更する変数を見つける必要があります。
また、サーバーなどから簡単に入手できるJSオブジェクトを切り替えるだけでは、MUIで簡単に実行時にテーマを変更する良い方法はありません。

基本的に、AntDとMUIのカスタマイズを探すとき、MUIは簡単なので話すことがないので簡単な例を見つけますが、AntDのカスタマイズをグーグルで検索すると、ハッキーなソリューションなどがたくさん見つかります。

私はAntDの完成度と非常に多くの優れたコンポーネントが大好きですが、カスタマイズは非常に悪く、私の経験と他の開発者との話し合いに基づいて、ロードマップの重要なポイントの1つになるはずです。

明確で正確な説明、thx!

@abenhamdine問題ありません!
MUIにはThemeProviderあり、アプリをラップして、TypeScriptで入力されたJSオブジェクトだけでテーマ全体を構成するので、作業がとても便利です。

AntDをカスタマイズするには、LESSまたはSASS(一部のプラグインを使用)をいじる必要があるため、他のdepなどを維持する必要があります。コンポーネントのソースを調べて、特定のコンポーネントなどに変更する変数を見つける必要があります。
また、サーバーなどから簡単に入手できるJSオブジェクトを切り替えるだけでは、MUIで簡単に実行時にテーマを変更する良い方法はありません。

基本的に、AntDとMUIのカスタマイズを探すとき、MUIは簡単なので話すことがないので簡単な例を見つけますが、AntDのカスタマイズをグーグルで検索すると、ハッキーなソリューションなどがたくさん見つかります。

私はAntDの完成度と非常に多くの優れたコンポーネントが大好きですが、カスタマイズは非常に悪く、私の経験と他の開発者との話し合いに基づいて、ロードマップの重要なポイントの1つになるはずです。

私は@murbanowiczに同意しAntdを使用したカスタマイズが少し厄介になる可能性があることです(グローバルスタイルのリーク、Sassのハッキーな使用方法、スタイルオーバーライド間の優先順位の競合、 momentなどの外部依存関係が非常に多く、バンドルサイズが非常に大きくなります)、しかしMUIを長い間使用してきたので、Antdの方がはるかにカスタマイズ可能だと思います。

私はMUIの新しいリリースについて最新ではありませんが、前回チェックしたときに、開発者がclassNames追加しなかった場合、MUIはstyled-components使用するため、カスタマイズできないコンポーネントの一部がありました。 classNamesどこでも、コンポーネントの正確なclassNameを選択して、独自のスタイルでオーバーライドすることはできません。
テーマはライブラリを直接使用するのに便利ですが、スタイルをデザインシステムに適合させたい場合は、MUIが非常に面倒で、不可能な場合もあります;)

しかし、それでも、 antdは、カスタマイズエクスペリエンスを簡単にするために実際にいくつかの作業が必要です;)

@filipjnc
rc-selectは、アクセシビリティを強化するアルファ版をリリースしました。 あなたはそれをテストするのを手伝うことができます。 そして、v4prepareブランチはそれを使用しています。上部にプレビューが表示されます。
rc-tabsの場合、最優先事項ではないため、後で強化します。

@zombieJわかりました、 rc-selectアルファを見てみましょう。

rc-tabsは優先事項ではありませんが、アクセシビリティテストの結果から最も重要なポイントを修正するプルリクエストをご覧ください。

ここで問題があります。現在のアイコンリフォーム方法によると、antdコンポーネントのフォームとアイコンがある場合
フォームが同時に導入された場合、エイリアスを1つだけ指定できますか?

@zkwolfはい、アイコンの名前を変更しています: https

cc @vagusX

一定のフォームの再レンダリング

https://next.ant.designでは、コンポーネントはコンポーネントサイドバーでアルファベット順にソートされていないことに注意して
Schermata 2019-09-30 alle 18 01 03

ご存知かもしれませんが、ant-designはアクセシビリティの点であまりうまくいっていません。 これは大多数の人にとって表面上はあまり目立たないですが、深く潜るときは大きな問題です。 ant-designのスコアがかなり悪いことをここで確認してください: https

幸いなことに、私はant-designが大好きで、エンタープライズプロジェクトでさらに使用するつもりなので、リストの一番上に表示することを目標としています。

私は、ドイツのクライアント向けにエンタープライズアプリの1つを代理店にテストさせました(大企業ではアクセシビリティが大きなトピックです)。 最も重要なことは次のとおりです。

  1. 選択、オートコンプリート、タブなどの基本的で重要なコンポーネントのスクリーンリーダーのアクセシビリティ
  2. 多くの場所で色のコントラスト
  3. いくつかの場所でのキーボードナビゲーション

アクセシビリティの問題をすべて修正するためのクイックウィンとして、最初にrc-tabsました。まもなくリリースされる予定です(https://github.com/react-component/tabs/pull/218)。 しかし、私が最も心配しているのは、 rc-select 、特にそのコンボボックス(オートコンプリート)部分です。 コンボボックスは、スクリーンリーダーのアクセシビリティの最も難しい側面の1つであり、間違えやすいです。 すべての問題を修正するには、ariaプロパティの微調整だけでなく、大幅なオーバーホールが必要です。

稼働前にアプリケーションですばやく修正するために、ant-designのSelectとAutoComplete( rc-select )をhttps://github.com/downshift-js/downshiftに基づく独自のコンポーネントに置き換えました

したがって、挑発的な質問は次のとおりです。二重作業を行わず、 rc-selectを非推奨にして、より人気のある完全なdownshiftライブラリを優先しますか? チームで時間を節約し、オープンソース市場で優れた代替手段がない他のコアコンポーネントの完成に集中することができます。

このアイデアは私には素晴らしいように見えます@filipjnc 。 また、ダウンシフトはrc-selectのサイズの1/4です。 antdチームがこれを実行できることを願っています。

4.0リリースでさらに色が改善されることを望んでいます。 具体的には、ドキュメントには、ダッシュボードやその他のデータ量の多いアプリケーションで非常に役立つ「データ視覚化カラーパレット(近日公開)」が記載されています。 暖かくて涼しい灰色は、よりまとまりのあるカラーパレットを構築するのにも役立ちます。 さらに、アクセシビリティのために色のコントラストを修正する良い機会です(@filipjncで言及されています)。 良い仕事を続けてください👍

ご存知かもしれませんが、ant-designはアクセシビリティの点であまりうまくいっていません。 これは大多数の人にとって表面上はあまり目立たないですが、深く潜るときは大きな問題です。 ant-designのスコアがかなり悪いことをここで確認してください: https

幸いなことに、私はant-designが大好きで、エンタープライズプロジェクトでさらに使用するつもりなので、リストの一番上に表示することを目標としています。

私は、ドイツのクライアント向けにエンタープライズアプリの1つを代理店にテストさせました(大企業ではアクセシビリティが大きなトピックです)。 最も重要なことは次のとおりです。

1. Screen reader accessibility for basic but crucial components like Select, Autocomplete and Tabs

2. Color contrasts in many places

3. Keyboard navigation in some places

アクセシビリティの問題をすべて修正するためのクイックウィンとして、最初にrc-tabsしました。まもなくリリースされるはずです( rc-select 、特にそのコンボボックス(オートコンプリート)部分です。 コンボボックスは、スクリーンリーダーのアクセシビリティの最も難しい側面の1つであり、間違えやすいです。 すべての問題を修正するには、ariaプロパティの微調整だけでなく、大幅なオーバーホールが必要です。

稼働前にアプリケーションですばやく修正するために、ant-designのSelectとAutoComplete( rc-select )をhttps://github.com/downshift-js/downshiftに基づく独自のコンポーネントに置き換えました

したがって、挑発的な質問は、二重作業を行わず、より人気のある完全なdownshiftライブラリを優先して、 rc-selectを廃止することを検討しますか? チームで時間を節約し、オープンソース市場で優れた代替手段がない他のコアコンポーネントの完成に集中することができます。

ダウンシフトについてはそれほど熱心ではありません。https://github.com/downshift-js/downshift/issues/730を参照して
一部のユーザーにとってアクセシビリティは重要ですが、さらに多くのユーザーにとってはパフォーマンスが重要です。

テーブルはキューにあります。現在、仮想リストで作業しています。

こんにちは、@ zombieJ
サマリーフッターに進展はありますか?

@ alexchen1875
新しいライフサイクルコードの更新を保留中です。 テーブルは完了後の次です:)

4.0一部の小道具パラメーターをラクダケースに変更できますか?例えば、 Input.TextAreaautosizeに変更autoSize
ReactのネイティブHTMLタグの小道具はすべて、 <input autoComplete />などのラクダの場合であり、このautosize常に不一致に見えます。 。 。

3.xで変更でき、元の使用法と互換性があり、破棄できます。 @ jinliming2 PRに興味がありますか?

  • 4.0 Treeのprops.childrenを古いapiとしてマークし、代わりにtreeDataの純粋なデータメソッドを推奨する理由props.childrenは非常に便利で、非常にプレイしやすいと思います。
  • ComponentWillReceivePropsは、reactの最新のapiで廃止としてマークされています。現在、試用期間中、テーブルコンポーネントとAnimateコンポーネントがまだ存在していることがわかりました。

アクセシビリティのための+1。 お願いします!

クリアアイコンのサイズの問題と言えば、他のコンポーネントのアイコンは12px、日付ピッカーは14pxのようですが、他のコンポーネントのクリアアイコンとサフィックスアイコンのサイズの違いは考慮されていますか、それとも日付ピッカーがアイコンスイッチであるため14pxですか?サイズを統一する予定はありますか

@zombieJは、テーブルの複数列の並べ替え機能を追加する予定です

plsは英語で書く

モーメントサイズが大きすぎるという問題は修正されますか?

モーメントサイズが大きすぎるという問題は修正されますか?

最初にdayjsを使用してみてください

英語でもいいですか?外国人の気持ちを考えて、いつもグーグル翻訳しています。文法が標準的でないことは重要ではなく、言葉が理解できるのです。

@ afc163
外国人がこのレポをフォローしていると思いましたか? 残念ながら、Google翻訳はあなたが言っていることを理解するための良いツールではありません。 Ant-Designの開発者とユーザーのほとんどは中国人だと思いますが、中国人以外の人も考えていますか?
したがって、私たち全員を尊重するために国際語を使用することをお勧めします。

こんにちは、
create-react-appとTypescriptを使ってAntDesign4.0を試してみたかったのです。
https://next.ant.design/docs/react/introduceの指示に従いましたが、動作するアプリを取得できません。
create-react-appの基本的な指示( import Button from 'antd/es/button'; )に従うと、エラーが発生します。

モジュールantd / es / buttonが見つかりません

react-app-rewired、customize-cra、babel-plugin-importを追加し、インポートをimport {Button} from 'antd'後、エラーメッセージが表示されます。

モジュール 'antd'の宣言ファイルが見つかりませんでした

antd4をcrea-react-appとtypescriptで動作させる方法についてアドバイスをいただけますか?

@gynekolog
node_modules正しくインストールされているかどうかを確認してください。

参照https://codesandbox.io/s/cool-paper-4y1u7

@lvlohammadi残念ながら、私のような中国人の中には英語が苦手な人もいますが、コミュニティのコミュニケーションに参加するために国際語を使うように最善を尽くします。

@gynekolog
node_modules正しくインストールされているかどうかを確認してください。

参照https://codesandbox.io/s/cool-paper-4y1u7

あなたが正しい。 走る

yarn add "https://github.com/ant-design/ant-design.git#4.0-prepare"

代わりに

yarn add "[email protected]"

恥...
ありがとうございました。

dropdownMatchSelectWidth on Selectコンポーネントブレーク(アルファバージョン)、以前のバージョンで有効

antdを使用して新しいプロジェクトを開始する場合、バージョン3または4のアルファを選択しますか? バージョン4はどの程度「本番環境に対応」していますか? まだq4リリースを目指していますか?

antdを使用して新しいプロジェクトを開始する場合、バージョン3または4のアルファを選択しますか? バージョン4はどの程度「本番環境に対応」していますか? まだq4リリースを目指していますか?

Antd4はまだ本番環境に対応していません。 antd 3から始める必要があります(特に、codemodが期待どおりに提供されている場合)。

ロジックと表示が完全に分離されていることを期待しています。つまり、クラス名を操作する以外に、jsはビューに対して何もしません。 外観はすべてCSS(LESS)で処理する必要があります。 また、Reactコンポーネントの代わりに、Webコンポーネントを使用して、React以外の開発者がより簡単に使用できるようにすることもできます。

ロジックと表示が完全に分離されていることを期待しています。つまり、クラス名を操作する以外に、jsはビューに対して何もしません。 外観はすべてCSS(LESS)で処理する必要があります。 また、Reactコンポーネントの代わりに、Webコンポーネントを使用して、React以外の開発者がより簡単に使用できるようにすることもできます。

すべてを浄化するというこの考えは無意味だと思います。 もっと重要なことに焦点を当てたほうがいいです。

https://react-select.comのように、オートコンプリートで複数選択する予定はあり

ロジックと表示が完全に分離されていることを期待しています。つまり、クラス名を操作する以外に、jsはビューに対して何もしません。 外観はすべてCSS(LESS)で処理する必要があります。 また、Reactコンポーネントの代わりに、Webコンポーネントを使用して、React以外の開発者がより簡単に使用できるようにすることもできます。

すべてを浄化するというこの考えは無意味だと思います。 もっと重要なことに焦点を当てたほうがいいです。

分離以上に差し迫った問題はないと思います。 チームでは、CSSは通常設計者によって処理されますが、JSは通常コーダーによって処理されます。 両方がスタイルを操作できるようにすると、混乱が生じ、開発時間が不必要に失われます。

メニューを例にとると、デフォルトの幅と高さはJSによって設定されます。問題は、誰かがアウターラッパーの幅または高さを変更したいときに、メニューがはみ出すか、隙間があることです。 これには、設計者とコーダーの両方が修正する必要があり、これはダウンタイムを意味します。

また、コンポーネントとして、コードはそれほど複雑ではなく、分離にそれほど労力をかける必要はありませんが、その結果、ユーザーとant.designチーム自体の作業がはるかに楽になります。

もう1つの小さな問題として、Iconはデフォルトで16pxにする必要があります。これは、グローバルなデフォルトのフォントサイズである14pxではありません。 つまり、Iconは、テキストとは別に、@ default-icon-size、@ icon-size-lgなどの変数を使用する必要があります。 これは実際にはバグではありませんが、機能が失われています。

@ afc163
外国人がこのレポをフォローしていると思いましたか? 残念ながら、Google翻訳はあなたが言っていることを理解するための良いツールではありません。 Ant-Designの開発者とユーザーのほとんどは中国人だと思いますが、中国人以外の人も考えていますか?
したがって、私たち全員を尊重するために国際語を使用することをお勧めします。

人々は自分の言語を使用する権利があり、そうすることを快適に感じるはずです。翻訳を提供することによって可能な限り多くの聴衆を巻き込む努力を尊重する限り、彼が最も快適な言語を使用するためだけに講義を行うべきではありません。メンテナがコミュニケーションすることを理解していること。 このプロジェクトの主要な貢献者が、他の言語が優れていることを伝えるために母国語を使用すべきではないという考えは、ばかげたことを超えています。 翻訳を依頼することは問題ありませんが、敬意を表してください。 中国語であるために回答に反対票を投じることは、逆効果であり、幼稚です。

おい、 And Designバージョン4.0にはCSSを生成するための_Less_の代わりにJSSがありますか?

おい、 And Designバージョン4.0にはCSSを生成するための_Less_の代わりにJSSがありますか?

AFAIK、いいえ。 ただし、lessに加えて(たとえば)styled-componentsを使用してみることができます。

おかげで、親愛なる@ tomgao365 、私はあなたがそれを参照した問題を作成します。 Lessを完全に削除し、代わりにJSSを使用するための優れたPRを作成したいと思います。バージョン3を使用して多くのプロジェクトが作成されたため、バージョン3での作業はお

また、 @ abenhamdine様、少し質問がありますJSSを使用することについてどう思いますか?

また、 @ abenhamdine様、少し質問があります

私によると主な利点:

  • ダイナミックなスタイリング(痛みが少ない)
  • オートコンプリート(使用するツール/ JSSライブラリによって異なります)
  • スタイルの継承

試す価値があります。
しかし、それは特効薬ではありません。

@abenhamdine様Discussionバッジを取得した問題を残しました。 #19181です。

そして、JSSの実装を開始し、Lessを省略したいのですが、新しいバージョンが登場し、すべての努力が無駄になるのではないかと心配しています。

ここhttps://github.com/ant-design/ant-design/issues/19738で、 moment.jsをDay.jsやネイティブのDateObjectなどの代替に置き換えることについての議論を見てうれしいです

バージョン4でcreate-react-appを使用してカラーテーマを変更する簡単な方法はありますか?

@flashthemanに同意します。変数を少なくして作業する必要なしにテーマをオーバーライドするとよいでしょう。つまり、感情からのThemeProviderのようなものです: https ://emotion.sh/docs/theming

jQueryの時代には、テーマ設定は非常に人気があり、ユーザーはそれを使用することを好みます。
実稼働環境でテーマを簡単に変更できる方法を2年以上待っていました。

新しいバージョンのアイコンコンポーネントでは、アイコンが動的に決定される場合、新しいバージョンでどのように処理する必要がありますか?当面はrequire + variable文字列の使用しか考えられませんが、type属性のみに変数を入力する必要があることがわかりました。他に対処する方法はありますか?
google translate:アイコンコンポーネントの新しいバージョンでは、アイコンが動的に決定される場合、新しいバージョンでの処理方法は、当面はrequire +変数文字列しか考えられず、元の文字列を入力するだけで済みます。変数を持つtype属性、他にどのような処理方法がありますか?

新しいバージョンのアイコンコンポーネントでは、アイコンが動的に決定される場合、新しいバージョンでどのように処理する必要がありますか?当面はrequire + variable文字列の使用しか考えられませんが、type属性のみに変数を入力する必要があることがわかりました。他に対処する方法はありますか?
google translate:アイコンコンポーネントの新しいバージョンでは、アイコンが動的に決定される場合、新しいバージョンでの処理方法は、当面はrequire +変数文字列しか考えられず、元の文字列を入力するだけで済みます。変数を持つtype属性、他にどのような処理方法がありますか?

Reactのドキュメントで推奨されているhttps://github.com/smooth-code/loadable-componentsを試して

公式版はいつリリースされますか?

4.0テーブルはピボット機能をサポートしていますか?

@ afc163-グローバルスタイルの汚染は、人々が新しいリリースで望んでいる一番の問題のようです。 これに取り組む人はいますか? 私はこの仕事をして助けていただければ幸いです。 それは難しいことではなく、少し努力するだけです。 私もAntDesignでこの問題に苦しんでいます。 解決したいのですが。

コンポーネントサイズを縮小するために行われている作業はありますか?
一度だけ:単純なButton必要な場合-antd.cssファイル全体をインポートする必要があるのはなぜですか?

コンポーネントサイズを縮小するために行われている作業はありますか?
一度だけ:単純なButton必要な場合-antd.cssファイル全体をインポートする必要があるのはなぜですか?

@ avalanche1https //ant.design/docs/react/introduce#Usageを参照してください

モジュール化されたantdを使用する

私にとって、アップロードコンポーネントは、カスタムリストレンダリングのサポートをサポートするのに十分ではありません。
さらに、アップロードの進行状況はほんの一部であり、リアルタイムの速度表示をサポートするために拡張するのは便利ではありません。

@ banxi1988

https://github.com/ant-design/ant-design/blob/c824569ea0810e2cf11bc2953b333eb0e404fd1c/components/upload/interface.tsx#L47 -L52

速度を表示したい場合、onChangeはアップロードされたファイルのパーセンテージを返しました。 アップロード速度を計算できます。

@ Z3SA https://caniuse.com/#search = CSS%20Variables。 これはすべてのIEサポートを停止する必要があります。IE11サポートの停止は過激すぎますが、私もそうすることをサポートしています。

フォールバックサポートを使用してこれを行うこともできます。 例: color: var(--red, @red);現在のすべての変数の単純なグローバル検索/置換でこれを解決できます。

SASSまたは他のより良いスタイリングソリューションをv4で検討することを支持して、LESSを削除していますか?

@murbanowicz 、こんにちは、コメントありがとうJSS代わりにLess JSSを使用することについて問題を残しました。ここでは、この移行の準備ができていることを示していますが、誰もアクションを示していません。

こんにちは@ zombieJ 、Ant Designでの素晴らしい仕事に感謝しますか? アプリケーションでダークテーマを切り替えるためのすぐに使える方法を提供する計画はありますか?

フォームコンポーネントに関する提案:
新しい4.0バージョンでは、フォームコンポーネントが開発者にとってより使いやすいものになることを非常に嬉しく思います。新しい例を見ました。Formコンポーネントの下にあるForm.Itemコンポーネントは、getFieldDecoratorを使用する必要がなくなります。これは非常に優れた改善ですが、もっと根本的な提案があります。Form.Itemコンポーネントを削除し、コーディングエクスペリエンスをさらに最適化し、コーディングをより新鮮にします。 Form.Itemコンポーネントの元の機能は、特定の入力コンポーネント(Input、DataPickなど)に直接転送されます。
これは、ほとんどの場合、開発されたフォームがantdの組み込み入力コンポーネントを使用することを考慮に入れています。これらは、入力コンポーネントの機能を強化することによってForm.Itemコンポーネントの機能を実現する資格があります。また、いくつかの特殊なケース(ユーザー自身など)の場合も同様です。コンポーネントを定義します。特定の入力コンポーネントはフォームにバインドされたくない場合)、指示用に特別なパッケージコンポーネントを提供できます。
antdの研究は詳細ではなく、一般ユーザーの視点からのアピール提案のみです。何かおかしいことがあれば、ハイハンにお願いします。

フォームコンポーネントに関する提案:
新しい4.0バージョンでは、フォームコンポーネントが開発者にとってより使いやすいものになることを非常に嬉しく思います。新しい例を見ました。Formコンポーネントの下にあるForm.Itemコンポーネントは、getFieldDecoratorを使用する必要がなくなります。これは非常に優れた改善ですが、もっと根本的な提案があります。Form.Itemコンポーネントを削除し、コーディングエクスペリエンスをさらに最適化し、コーディングをより新鮮にします。 Form.Itemコンポーネントの元の機能は、特定の入力コンポーネント(Input、DataPickなど)に直接転送されます。
これは、ほとんどの場合、開発されたフォームがantdの組み込み入力コンポーネントを使用することを考慮に入れています。これらは、入力コンポーネントの機能を強化することによってForm.Itemコンポーネントの機能を実現する資格があります。また、いくつかの特殊なケース(ユーザー自身など)の場合も同様です。コンポーネントを定義します。特定の入力コンポーネントはフォームにバインドされたくない場合)、指示用に特別なパッケージコンポーネントを提供できます。
antdの研究は詳細ではなく、一般ユーザーの視点からのアピール提案のみです。何かおかしいことがあれば、ハイハンにお願いします。

@shengliangliは、結合が強すぎると感じています。 。 。

フォームコンポーネントに関する提案:
新しい4.0バージョンでは、フォームコンポーネントが開発者にとってより使いやすいものになることを非常に嬉しく思います。新しい例を見ました。Formコンポーネントの下にあるForm.Itemコンポーネントは、getFieldDecoratorを使用する必要がなくなります。これは非常に優れた改善ですが、もっと根本的な提案があります。Form.Itemコンポーネントを削除し、コーディングエクスペリエンスをさらに最適化し、コーディングをより新鮮にします。 Form.Itemコンポーネントの元の機能は、特定の入力コンポーネント(Input、DataPickなど)に直接転送されます。
これは、ほとんどの場合、開発されたフォームがantdの組み込み入力コンポーネントを使用することを考慮に入れています。これらは、入力コンポーネントの機能を強化することによってForm.Itemコンポーネントの機能を実現する資格があります。また、いくつかの特殊なケース(ユーザー自身など)の場合も同様です。コンポーネントを定義します。特定の入力コンポーネントはフォームにバインドされたくない場合)、指示用に特別なパッケージコンポーネントを提供できます。
antdの研究は詳細ではなく、一般ユーザーの視点からのアピール提案のみです。何かおかしいことがあれば、ハイハンにお願いします。

@shengliangliは、結合が強すぎると感じています。 。 。

Form.Itemは、Formコンポーネントのデータバインディング機能を実現するためにantdによって追加された「追加」コンポーネントだと思います。この実現には理由がありますが、結局のところ、追加のものが追加されます。誰もがreduxのモジュラーコードが多すぎるという問題を批判しているように、開発者はこの書き方を好まないかもしれません。 form.itemによって実装されるデータバインディング機能が、入力コンポーネントの機能を強化するために、入力などの入力コンポーネントの特性として理解できる場合、それはより自然に感じますか?

カップリングの問題についても考えました。問題の根本は、入力コンポーネントの機能と動作特性をどのように定義するかにあるのかもしれません。

フォームコンポーネントに関する提案:
新しい4.0バージョンでは、フォームコンポーネントが開発者にとってより使いやすいものになることを非常に嬉しく思います。新しい例を見ました。Formコンポーネントの下にあるForm.Itemコンポーネントは、getFieldDecoratorを使用する必要がなくなります。これは非常に優れた改善ですが、もっと根本的な提案があります。Form.Itemコンポーネントを削除し、コーディングエクスペリエンスをさらに最適化し、コーディングをより新鮮にします。 Form.Itemコンポーネントの元の機能は、特定の入力コンポーネント(Input、DataPickなど)に直接転送されます。
これは、ほとんどの場合、開発されたフォームがantdの組み込み入力コンポーネントを使用することを考慮に入れています。これらは、入力コンポーネントの機能を強化することによってForm.Itemコンポーネントの機能を実現する資格があります。また、いくつかの特殊なケース(ユーザー自身など)の場合も同様です。コンポーネントを定義します。特定の入力コンポーネントはフォームにバインドされたくない場合)、指示用に特別なパッケージコンポーネントを提供できます。
antdの研究は詳細ではなく、一般ユーザーの視点からのアピール提案のみです。何かおかしいことがあれば、ハイハンにお願いします。

@shengliangliは、結合が強すぎると感じています。 。 。

Form.Itemは、Formコンポーネントのデータバインディング機能を実現するためにantdによって追加された「追加」コンポーネントだと思います。この実現には理由がありますが、結局のところ、追加のものが追加されます。誰もがreduxのモジュラーコードが多すぎるという問題を批判しているように、開発者はこの書き方を好まないかもしれません。 form.itemによって実装されるデータバインディング機能が、入力コンポーネントの機能を強化するために、入力などの入力コンポーネントの特性として理解できる場合、それはより自然に感じますか?

カップリングの問題についても考えました。問題の根本は、入力コンポーネントの機能と動作特性をどのように定義するかにあるのかもしれません。

特に同意しません。Form.Itemは主に、ラベルや列の属性などのコンポーネントの外部パッケージであり、コンポーネントへのインライン化にはあまり適していないと思います。

こんにちは@zombieJ
バージョン4がいつリリースされるか知りたいですか?
お返事をお待ちしております

私もデザインに貢献するにはどうすればよいですか。
誰かからの連絡を探しています

beta.0バージョンが利用可能ですが、それは使用できるという意味ですか?

フォームコンポーネントに関する提案:
新しい4.0バージョンでは、フォームコンポーネントが開発者にとってより使いやすいものになることを非常に嬉しく思います。新しい例を見ました。Formコンポーネントの下にあるForm.Itemコンポーネントは、getFieldDecoratorを使用する必要がなくなります。これは非常に優れた改善ですが、もっと根本的な提案があります。Form.Itemコンポーネントを削除し、コーディングエクスペリエンスをさらに最適化し、コーディングをより新鮮にします。 Form.Itemコンポーネントの元の機能は、特定の入力コンポーネント(Input、DataPickなど)に直接転送されます。
これは、ほとんどの場合、開発されたフォームがantdの組み込み入力コンポーネントを使用することを考慮に入れています。これらは、入力コンポーネントの機能を強化することによってForm.Itemコンポーネントの機能を実現する資格があります。また、いくつかの特殊なケース(ユーザー自身など)の場合も同様です。コンポーネントを定義します。特定の入力コンポーネントはフォームにバインドされたくない場合)、指示用に特別なパッケージコンポーネントを提供できます。
antdの研究は詳細ではなく、一般ユーザーの視点からのアピール提案のみです。何かおかしいことがあれば、ハイハンにお願いします。

まず、内蔵かどうかとは関係ないことを知っておく必要があります。いわゆる内蔵部品の使用は事故と言えます。
getFieldDecoratorは、フォームコンポーネントと入力コンポーネントを接続するブリッジです。form.itemは2つの属性valueonChangeで渡され、ラップされたコンポーネントはvalueonChangeこれらの2つのインターフェース方法は、外の世界と相互作用します。つまり、 valueonChangeが実装されている限り、どのコンポーネントもgetFieldDecoratorパラメーターになることができます。これはprogram to interfaceの典型的な考え方です

PS:私はソースコードを読んでいません、上記のすべてはドキュメントを読んだ後の私の推測です

Form.Itemが基礎となるComponentと相互作用できる理由Form.Item 、誰かが期待するような「組み込み」メカニズムとは何の関係もありません。 これは、 program to interfaceと呼ばれるプログラミングの世界で一般的なトリックです。

基本的に、 Formコンポーネントと基礎となるコンポーネントは、 valueonChangeようなものに同意します。 それらは、通信するための2つの世界間のインターフェースとして機能します。 デカップリングを目的とした優れた設計です

@dancerphilたぶん、公式ドキュメントでアイデアをより明確に明確にすることができます

こんにちは、v4ベータ版がリリースされました。APIは現在安定しています。つまり、重大な問題が発生しない限り、APIに重大な変更はありません。ベータ版では、デザイナーがUIのビジュアルデザインの調整を継続し、バグ修正に重点的に取り組みます。お気軽に試してください。で、火災のバグやフィードバックのために私たちを助けてください。

コーディングと試行に参加してくれてありがとう。あなたの助けはたくさんの意味があります:)


みなさん、こんにちは。ベータ版がリリースされました。 APIに大きな設計上の問題がない場合、それ以上の変更は行われません。ベータ版では、設計者がv4のUIスタイルの調整を支援し、バグ修正に焦点を当てます。バグの発見やその他のフィードバックをお待ちしております。

開発・試行作業にご参加いただき、誠にありがとうございます。あなたの助けは非常に意味があります:)


参照: http

私もデザインに貢献するにはどうすればよいですか。
誰かからの連絡を探しています

@ ekeminimarkk001参照: https//ant.design/docs/react/contributing

@zombieJ問題にリストされて

フォームコンポーネントに関する提案:
新しい4.0バージョンでは、フォームコンポーネントが開発者にとってより使いやすいものになることを非常に嬉しく思います。新しい例を見ました。Formコンポーネントの下にあるForm.Itemコンポーネントは、getFieldDecoratorを使用する必要がなくなります。これは非常に優れた改善ですが、もっと根本的な提案があります。Form.Itemコンポーネントを削除し、コーディングエクスペリエンスをさらに最適化し、コーディングをより新鮮にします。 Form.Itemコンポーネントの元の機能は、特定の入力コンポーネント(Input、DataPickなど)に直接転送されます。
これは、ほとんどの場合、開発されたフォームがantdの組み込み入力コンポーネントを使用することを考慮に入れています。これらは、入力コンポーネントの機能を強化することによってForm.Itemコンポーネントの機能を実現する資格があります。また、いくつかの特殊なケース(ユーザー自身など)の場合も同様です。コンポーネントを定義します。特定の入力コンポーネントはフォームにバインドされたくない場合)、指示用に特別なパッケージコンポーネントを提供できます。
antdの研究は詳細ではなく、一般ユーザーの視点からのアピール提案のみです。何かおかしいことがあれば、ハイハンにお願いします。

まず、内蔵かどうかとは関係ないことを知っておく必要があります。いわゆる内蔵部品の使用は事故と言えます。
getFieldDecoratorは、フォームコンポーネントと入力コンポーネントを接続するブリッジです。form.itemは2つの属性valueonChangeで渡され、ラップされたコンポーネントはvalueonChangeこれらの2つのインターフェース方法は、外の世界と相互作用します。つまり、 valueonChangeが実装されている限り、どのコンポーネントもgetFieldDecoratorパラメーターになることができます。これはprogram to interfaceの典型的な考え方です

PS:私はソースコードを読んでいません、上記のすべてはドキュメントを読んだ後の私の推測です

あなたの返事を読んだ後、私はantdのフォームコンポーネントに対する私の提案はあまり成熟していないと言わざるを得ませんが、一方で、この提案をすることは一般ユーザーの観点から問題を完全に考えています。このように使用頻度の高いコンポーネントの場合、開発と使用、コードの記述を減らし、より明確で自然な表現を使用する方が便利なのは、antdに対する私の熱烈な期待です。

ユーザーの観点から見ると、antdはすでに非常に優れています。ほとんどのコンポーネントは、使用するとすぐに使用でき、使い切ると忘れてしまいます。この効果の理由は、コンポーネントの優れたAPI設計とパッケージ化と切り離せませんが、コンポーネントの使用シナリオ(from、tableなど)はまだいくつかあり、さらに改善の余地があります。

Antdはプロジェクトの単なるツールコンポーネントです。その実装メカニズムを公開しないか、外部APIの実装メカニズムを巧妙に非表示にして同化することをお勧めします。ユーザーはこのコンポーネントを使いたいだけで、最も便利で自然な形で使いたいと思っています。また、ツールコンポーネントの専門家にはなりたくありません。

フォームコンポーネントに戻ると、現在の3.x apiでは、実際にはAliベースのuformを使用したいと思っています。antdのフォームと比較して、uformはコードを書く必要が少なく、生産性が高くなっています。もちろん、uformは宣言的な書き方のように感じますが、これはantdの形式とは大きく異なり、参照する価値があまりない場合があります。

antdパーティとして、多くの要件を尋ねるのは少し恥ずかしいことですが、愛のおかげで、それがより良いことを願っています。プロジェクトチームが理解してくれることを願っています。また、適切なバージョンでコンポーネントの開発と使用エクスペリエンスをさらに最適化したいと思っています。 。

非常に奇妙な。 Iconはまったく使用しませんでしたが、すべてのicons-svgをパッケージ化しました。
webpack-bundle-analyzer.png
バージョン番号:4.0.0-beta.0。 Babel-plugin-importとtree-shakingが使用されますが、それらは役に立ちません。

非常に奇妙な。 Iconはまったく使用しませんでしたが、すべてのicons-svgをパッケージ化しました。
webpack-bundle-analyzer.png
バージョン番号:4.0.0-beta.0。 Babel-plugin-importとtree-shakingが使用されますが、それらは役に立ちません。

この構成を使用する

{
                    test: /\.js?$/,
                    include: [/node_modules[\\\\/]antd/],
                    use: [
                        {
                            loader: 'babel-loader',
                            options: {
                                plugins: [
                                    '@babel/plugin-syntax-dynamic-import',
                                    [
                                        'import',
                                        {
                                            libraryName: 'antd',
                                            style: true,
                                            libraryDirectory: 'es',
                                        },
                                        'ant',
                                    ],
                                    [
                                        'import',
                                        {
                                            libraryName: '@ant-design/icons',
                                            customName: name => {
    const formatName = name.split('-').reduce((acum, value) => acum + value[0].toUpperCase() + value.slice(1), '');

    return `@ant-design/icons/lib/icons/${formatName}`;
};
                                        },
                                        '@ant-design/icons',
                                    ],
                                ],
                            },
                        },
                    ],
                },

非常に奇妙な。 Iconはまったく使用しませんでしたが、すべてのicons-svgをパッケージ化しました。
webpack-bundle-analyzer.png
バージョン番号:4.0.0-beta.0。 Babel-plugin-importとtree-shakingが使用されますが、それらは役に立ちません。

この構成を使用する

{
                    test: /\.js?$/,
                    include: [/node_modules[\\\\/]antd/],
                    use: [
                        {
                            loader: 'babel-loader',
                            options: {
                                plugins: [
                                    '@babel/plugin-syntax-dynamic-import',
                                    [
                                        'import',
                                        {
                                            libraryName: 'antd',
                                            style: true,
                                            libraryDirectory: 'es',
                                        },
                                        'ant',
                                    ],
                                    [
                                        'import',
                                        {
                                            libraryName: '@ant-design/icons',
                                            customName: name => {
    const formatName = name.split('-').reduce((acum, value) => acum + value[0].toUpperCase() + value.slice(1), '');

    return `@ant-design/icons/lib/icons/${formatName}`;
};
                                        },
                                        '@ant-design/icons',
                                    ],
                                ],
                            },
                        },
                    ],
                },

お返事ありがとうございますが、設定通りに動作しませんでした。

バージョン:4.0.0-beta.0
問題:表示されているモーダルコンポーネントを切り替えると、ページがロールオーバーしてアドレスを再現します。

@xiaoxintangマージを待って、マスターブランチで修正されました。

@ afc163antd4.0ベータ版をインストールするにはどうすればよい

https://next.ant.design/電話を切りました

@ afc163antd4.0ベータ版をインストールするにはどうすればよい

npm install antd@next
または
yarn add antd@next

プレビューサイトが壊れているようです。 ページが見つかりませんというエラーのみが

フォームコンポーネントに関する提案:
新しい4.0バージョンでは、フォームコンポーネントが開発者にとってより使いやすいものになることを非常に嬉しく思います。新しい例を見ました。Formコンポーネントの下にあるForm.Itemコンポーネントは、getFieldDecoratorを使用する必要がなくなります。これは非常に優れた改善ですが、もっと根本的な提案があります。Form.Itemコンポーネントを削除し、コーディングエクスペリエンスをさらに最適化し、コーディングをより新鮮にします。 Form.Itemコンポーネントの元の機能は、特定の入力コンポーネント(Input、DataPickなど)に直接転送されます。
これは、ほとんどの場合、開発されたフォームがantdの組み込み入力コンポーネントを使用することを考慮に入れています。これらは、入力コンポーネントの機能を強化することによってForm.Itemコンポーネントの機能を実現する資格があります。また、いくつかの特殊なケース(ユーザー自身など)の場合も同様です。コンポーネントを定義します。特定の入力コンポーネントはフォームにバインドされたくない場合)、指示用に特別なパッケージコンポーネントを提供できます。
antdの研究は詳細ではなく、一般ユーザーの視点からのアピール提案のみです。何かおかしいことがあれば、ハイハンにお願いします。

あなたはこれを試すことができます//github.com/aweiu/ant-modifier

グローバルスタイルの汚染に対する最適化はありますか?

グローバルスタイルの汚染に対する最適化はありますか?

Antdには接頭辞があるようですが、汚染ではありません。独自のプロジェクトcssコードは、css-modulesを使用して地球規模の汚染の問題を解決しようとすることができます

グローバルスタイルの汚染に対する最適化はありますか?

Antdには接頭辞があるようですが、汚染ではありません。独自のプロジェクトcssコードは、css-modulesを使用して地球規模の汚染の問題を解決しようとすることができます

ええと、私はこの接頭辞を知っています。つまり、グローバルcssリセット部分の汚染を意味します。これは、レガシープロジェクトでのantdおよびcssリセットの導入によって引き起こされる汚染の問題です。

グローバルスタイルの汚染に対する最適化はありますか?

Antdには接頭辞があるようですが、汚染ではありません。独自のプロジェクトcssコードは、css-modulesを使用して地球規模の汚染の問題を解決しようとすることができます

詳細については、公式Webサイトのリンクにある問題の説明を参照してください: https

Antd Pro4.0からAntdPro 4.0レイアウトを移行する計画はありますか?
自分でプロジェクトを移行すると、プロレイアウトでSiderMenu.js Icon.createFromIconfontCNエラーが発生しました。プロレイアウトの依存関係はまだv3バージョンであるため、依存関係を変更する方法がわかりません。知っている人が教えてくれます。

Antd Pro4.0からAntdPro 4.0レイアウトを移行する計画はありますか?
自分でプロジェクトを移行すると、プロレイアウトでSiderMenu.js Icon.createFromIconfontCNエラーが発生しました。プロレイアウトの依存関係はまだv3バージョンであるため、依存関係を変更する方法がわかりません。知っている人が教えてくれます。

4.0ではアイコンが分離されていたため、インポートを変更する必要があります。next.ant.designを取得して、現在のアイコンapiドキュメントを確認できます。

v4バージョンへのご協力に感謝します。 4.0.0-rc.0バージョンがリリースされてからクローズ:ref#20661

StrictModeは目標ですか? レガシーコンテキストを移行する必要がありますhttps://github.com/ant-design/ant-design/issues/9870

antd3とantd4の両方をリポジトリに保持できますか? リポジトリが大きすぎるため、どこでも変更できず、完全なコードベースがほぼ書き直されます。
また、はいの場合、antd3 CSSをグローバルに保持し、antd4CSSを一部のフォルダーとその子に保持できますか

このページは役に立ちましたか?
0 / 5 - 0 評価

関連する問題

tun100 picture tun100  ·  176コメント

zombieJ picture zombieJ  ·  75コメント

imxiongying picture imxiongying  ·  90コメント

yesmeck picture yesmeck  ·  107コメント

benjycui picture benjycui  ·  80コメント