Ant-design: 💥 Ant Design 4.0 sedang berlangsung!

Dibuat pada 31 Mei 2019  ·  182Komentar  ·  Sumber: ant-design/ant-design

Pratinjau Situs

next.ant.design


Rekap

Sudah 16 bulan sejak Desember 2017 ketika Ant Design 3.0 dirilis. Kami memperbaiki banyak bug dan menambahkan banyak fitur baru ( changelog ) dalam 4289 komit, 138 rilis, 7675 masalah & PR, yang memberi kami 25375 bintang di GitHub. Kami juga merilis Ant Design Pro 4.0 . Dukungan untuk TypeScript, blok, dan abstraksi tata letak. Kami ingin berterima kasih kepada setiap kontributor dan kontribusi Anda membuat Ant Design menjadi lebih baik dan lebih baik.

Pada saat yang sama, kami merilis Ant Design Pro 4.0. Mendukung TypeScript, Block dan Menyediakan komponen Layout.

Saat ini, kami berpikir: Oke, selanjutnya apa? Apa yang bisa kita lakukan untuk membuat Ant Design melangkah lebih jauh? Ini adalah waktu untuk merencanakan Ant Design 4.0! 🍻

Berikut adalah detail plan tentang 4.0. Kami mungkin menyesuaikan beberapa di antaranya karena masih dalam perencanaan.

🌓 Tentang Kompatibilitas

Kami akan menghapus alat peraga yang tidak digunakan lagi di 4.0, yang berarti alat peraga yang tidak digunakan lagi tidak akan lagi didukung. Jika Anda tidak mendapatkan peringatan dari 3.x terbaru, peningkatan versi akan berjalan lancar. Jika tidak, akan ada fase pemeliharaan setengah tahun untuk 3.0 setelah 4.0 dirilis.

Kami tahu itu merepotkan untuk melakukan peningkatan. Kami berencana menyediakan paket yang kompatibel untuk menangani ini:

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

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

Paket ini akan tersedia hingga akhir fase pemeliharaan 3.x.

Gunakan React API terbaru

Kami telah menyediakan dukungan React 15 untuk waktu yang lama. Tetapi tampaknya tidak perlu dari umpan balik sosial (Ada hampir 0% masalah tentang React 15), karena React memiliki kompatibilitas yang kuat. Untuk mendukung React 15, kami menggunakan API baru dengan sangat hati-hati. Ini tidak akan menjadi masalah lagi setelah 4.0:

  • Menyediakan api Hooks untuk komponen terkait
  • Mendukung mode Bersamaan (Masih mempersiapkan, akan terus menyesuaikan di 4.0)
  • Embrace React 17 (wow! ~)

Hentikan dukungan IE9 / 10

Ant Design 3.0 menghabiskan banyak upaya untuk mendukung IE lama . Tetapi menurut statistik industri, penggunaan IE9 / 10 semakin rendah dengan peningkatan Windows. Kami akan menghentikan dukungan IE 9/10 di 4.0 (tetapi masih mendukung IE 11), yang berarti dukungan fitur browser yang lebih baru akan dimungkinkan.

Pembaruan lain yang kompatibel

  • Lebih sedikit 2.x tingkatkan ke Lebih sedikit 3.x
  • Penyesuaian ikon
  • Sebutan tidak berlaku lagi

📦 Kurangi ukuran

Optimalkan ukuran ikon

Kami menggunakan ikon svg ( mengapa svg? ) Setelah [email protected] . Kami menggunakan nama string untuk memetakan ikon, yang tidak dapat dimuat sesuai permintaan. Kami mengimpor semua file ikon ke antd yang membuat ukuran bundel menjadi besar . Kami akan menangani ini di 4.0.

Cara penggunaan Ikon lama akan * tidak digunakan lagi *:

import { Icon, Button } from 'antd';

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

Akan menggunakan Impor Ikon tunggal sebagai gantinya di 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>
);

Anda masih dapat menggunakan cara yang kompatibel dengan cara lama.

Hapus Draft.js

Kami menggunakan Draft.js dalam komponen Sebutkan untuk mengonfirmasi lokasi popup, tetapi hanya sebagian kecil fungsionalitas yang digunakan. Sepertinya terlalu mahal. Kami berencana untuk menghapus Draft.js di 4.0, dan menggunakan solusi ringan lainnya sebagai gantinya. Pada saat yang sama, untuk membedakan dengan komponen Mention asal di 3.0, komponen baru Mention akan diperkenalkan untuk menghindari konflik api. Juga, ini mendukung cara yang kompatibel :

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

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

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

🧭 Optimalisasi kinerja

Kami mendapatkan sedikit masalah kinerja untuk kumpulan data besar dari komunitas. Kami akan memastikan beberapa pengoptimalan akan dilakukan di sini.

Pengguliran virtual

Pengguliran virtual adalah cara umum untuk melakukan pengoptimalan kinerja. Kami berencana untuk mendukung ini secara native dalam komponen. Ini mungkin tidak segera selesai dalam rilis 4.0. Akan mengintegrasikan langkah demi langkah.

Animasi Refactor

Kami melakukan beberapa peretasan dengan animasi di masa lalu. Ini bekerja dengan baik dalam banyak kasus. Kami berencana untuk menggunakan banyak cara React murni daripada meretasnya. Pembaruan ini akan diam, tidak ada yang akan memengaruhi Anda.

🧩 Optimasi Komponen

Kami telah menambahkan banyak komponen di 3.0, dan akan berlanjut di 4.0. Komponen ini akan berasal dari skenario bisnis, Ant Design Pro dan kebutuhan sosial. Proses komponen baru akan sama dengan Ant Design 3.0, kami akan meletakkan file desain terkait di PR dan mengumpulkannya di situs resmi. Rilis di setiap versi minor.

Selain itu, kami berencana untuk merefaktor beberapa komponen utama agar lebih mudah digunakan. Termasuk tetapi tidak hanya:

Bentuk

Formulir adalah salah satu komponen yang paling banyak digunakan. Kami melihat bahwa sosial memiliki banyak komentar tentang desain API.
Kami ingin menyederhanakan API di 4.0:

  • Formulir akan menyertakan penyimpanan data. Tidak perlu lagi menggunakan Form.create() .
  • Fom.Item akan menyertakan field bind. Tidak perlu lagi menggunakan getFieldDecorator .
  • Form.Item akan menyimpan nilainya, tetapi validator akan dinonaktifkan ketika field dihapus.
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>
  );
}

Di dunia nyata, kami bertemu banyak komunikasi antar bentuk (biasanya dalam konfigurasi detail). Kami ingin membuatnya lebih mudah:

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

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

Jika Anda ingin mengikuti kemajuan Form, Anda dapat melihat di sini .

Meja

Di masa lalu, kami menerima banyak umpan balik Tabel . Kami tahu bahwa alat peraga luaskan dan gulir tidak berfungsi dengan baik bersama-sama. Kali ini, kami akan fokus untuk memperbaikinya. Selain itu, kami akan melakukan banyak hal tentang pengoptimalan Tabel. Dan cara mudah untuk melakukan tata letak :

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

Kami juga berencana menambahkan Footer Ringkasan untuk mendukung baris ringkasan.

DatePicker baru

DatePicker saat ini memenuhi sebagian besar kebutuhan. Tapi dari diskusi komunitas , kita bisa menggali lebih dalam. Kami akan menyediakan pemetik tahun istirahat dan pemetik ranger ( diskusikan ). Dan juga, kami akan memperbarui gaya desain DatePicker untuk meningkatkan pengalaman pengguna.

🚀 Lanjutkan memperbarui

Selain konten di atas, kami juga berencana untuk terus mengupdate. Ini akan terus diperbarui di 4.0 untuk meningkatkan pengembangan dan pengalaman pengguna.

🧶 Meningkatkan aksesibilitas

Ant Design 3.0 memiliki dukungan terbatas untuk aksesibilitas, kami berencana untuk menyesuaikan struktur dom dan menambahkan lebih banyak tanda aria untuk menyempurnakan pengalaman pembaca layar. Selain itu, kami juga bersiap untuk mengoptimalkan interaksi papan kunci.

🎯 Standar API Pengembang

Kami menemukan beberapa gaya penamaan API sedikit berbeda dengan yang lain. Ini bukan masalah bagi pengembang Typecript, tetapi sulit untuk mengingat sebaliknya.
Jadi, kami akan membuat dokumen standar penamaan yang mencakup API saat ini dan aturan penamaan terkait. Dalam fitur baru, akan mengikuti aturan penamaan untuk menghindari konflik penamaan API. Juga, kami menyambut baik opini komunitas tentang hal ini di PR.

💼 Bereaksi Mode Ketat

Jika Anda mencoba membungkus komponen antd dengan <React.StrictMode> , Anda akan mendapat peringatan. Kami telah mengganti beberapa komponen dengan metode siklus hidup baru. Pekerjaan ini akan berlanjut di 4.0.

💡 Tingkatkan pengalaman pengembang

Di masa lalu, kami menemukan bahwa beberapa masalah datang berulang kali. Masalah ini entah bagaimana adalah pertanyaan penggunaan. Kami pikir kami bisa melakukan sesuatu tentang ini (sebenarnya sudah mulai di 3.0). Dalam lingkungan pengembangan, kami akan memperingatkan status tidak terduga (seperti objek Momen tidak valid, penyesuaian prefiks / imbuhan menyebabkan perubahan struktur dom, dll.). Kami percaya bahwa konsol adalah tempat pertama untuk fokus saat menghadapi masalah. Memberikan tips yang tepat dapat membantu untuk menemukan masalah tersebut. Pada saat yang sama, kami akan merangkum pertanyaan lain ke dalam FAQ dari setiap dokumen Komponen. Dari sisi pemeliharaan, kami tidak dapat membantu pada setiap pertanyaan penggunaan, tetapi pertanyaan tersebut ada, terutama dengan developer pendatang baru. FAQ dapat membantu menghemat banyak waktu pencarian. Jika Anda tertarik dengan hal ini, selamat datang untuk membantu meningkatkan pengalaman pengembang bersama kami.

🐱 Sumber Daya Desain

Ant Design bukan hanya pustaka komponen. Desain adalah kekuatan pendukung. Kami akan menyelaraskan pembaruan sumber daya desain (Paket komponen sketsa, peralatan Dapur, Token Desain, dll.). Kami juga akan menyesuaikan gaya komponen saat ini untuk meningkatkan pengalaman pengguna.

Tonggak Sejarah

Berikut adalah rencana pencapaian kami. Kami akan membuat masalah terkait di Github. Dan juga menyambut kontributor sosial:

Q2

  • Tandai API terkait sebagai Tidak Berlaku Lagi dan hapus dari dokumen.
  • Pembaruan peringatan komponen tingkat rendah.

P3

  • Buat cabang antd 4.0 dan perbarui dokumen.
  • Pengembangan komponen.

P4

  • Rilis Ant Design 4.0.

Selamat bergabung

Kami akan terus mengabari Anda selama proses pengembangan. Konten di atas mungkin belum final. Pemikiran / saran dari komunitas akan sangat kami terima! Ayo buat Ant Design 4.0 lebih baik!


pengantar

Sudah 16 bulan sejak Ant Design merilis 3.0 pada Desember 2017. Selama periode ini, kami telah memperbaiki sejumlah besar bug dan menambahkan sejumlah besar fitur baru ( log pembaruan ). Mengirimkan 4289 komit, merilis 138 versi, menutup 7675 masalah dan PR, dan menambahkan 25375 bintang. Kami juga merilis Ant Design Pro 4.0 . Mendukung TypeScript, blok, dan abstrak tata letak. Kami ingin berterima kasih kepada semua relawan komunitas atas dedikasinya untuk membuat Ant Design lebih bermanfaat.

Pada saat yang sama, kami juga memikirkan tentang apa langkah selanjutnya dan bagaimana membuat Ant Design melangkah lebih jauh.Kami berharap untuk merilis versi Ant Design 4.0 di Q4 tahun ini . 🍻

Berikut ini detail plan untuk 4.0, tentunya ini masih dalam perencanaan. Mungkin ada penyesuaian saat dirilis secara resmi.

🌓 Penyesuaian kompatibilitas

Kami akan menghapus atribut yang ditandai sebagai Deprecated in 4.0. Pada saat itu Anda tidak dapat lagi menggunakan metode yang ditinggalkan. Jika Anda mengupgrade proyek Anda ke versi 3.x terbaru dan Anda tidak melihat pesan peringatan dari antd di konsol, maka peningkatan Anda ke 4.0 juga akan berjalan mulus. Untuk versi 3.x, kami masih akan melakukan pekerjaan pemeliharaan tambahan selama enam bulan setelah rilis 4.0.

Kami tahu bahwa versi peningkatan memiliki banyak energi untuk meninggalkan API yang sudah usang. Kami berencana untuk menyediakan paket kompatibilitas untuk membantu transisi proyek saat kami merilis 4.0 (API terkait masih dalam desain dan mungkin berbeda saat dirilis secara resmi):

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

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

Paket kompatibilitas juga akan tetap diperbarui hingga pekerjaan pemeliharaan 3.0 berhenti.

Gunakan React API versi terbaru

Kami telah mendukung versi React 15 sejak lama, tetapi dari umpan balik komunitas, ini sebenarnya tidak penting (nomor masalah React 15 mendekati 0%). Karena React sendiri memiliki kompatibilitas yang sangat kuat. Untuk mendukung React 15, kami sangat berhati-hati tentang penggunaan API baru selama proses pengembangan. Setelah versi 4.0, kami akan menggunakan versi React terbaru sebagai patokan untuk pengembangan:

  • Menyediakan versi Hooks dari komponen terkait
  • Mendukung mode Bersamaan (Tentu saja, ada lebih banyak hal yang harus disiapkan, dan akan terus disesuaikan di rilis 4.0.)
  • Embrace React 17 (wow! ~)

Hentikan dukungan IE9 / 10

Ant Design 3.0 telah melakukan banyak upaya agar kompatibel dengan versi lama IE . Namun, menurut statistik industri, pangsa global dan domestik browser IE9 / 10 menyusut dengan pembaruan sistem Windows. Di versi 4.0, kami akan berhenti mendukung IE 9/10 (tetapi masih mendukung IE 11). Ini juga berarti bahwa dimungkinkan untuk mendukung fitur-fitur browser baru.

Penyesuaian kompatibilitas lainnya

  • Tingkatkan dari Less 2.x ke Less 3.x
  • Perubahan penggunaan ikon
  • Sebutkan usang

📦 Kurangi volume

Optimalkan ukuran ikon

Di [email protected] , kami memperkenalkan ikon svg ( mengapa menggunakan ikon svg? ). API untuk menyetel ikon dengan penamaan string digunakan. Di bawah desain ini, kami tidak dapat memuat sesuai permintaan. Oleh karena itu, kami sepenuhnya memperkenalkan file ikon svg, yang sangat meningkatkan ukuran produk yang dikemas. Di 4.0, kami akan menyesuaikan ini untuk mengoptimalkan volume.

Versi lama penggunaan Ikon akan usang :

import { Icon, Button } from 'antd';

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

Di 4.0, metode pengenalan sesuai permintaan akan diadopsi:

// 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>
);

Anda masih dapat terus menggunakan metode kompatibel di atas.

Hapus Draft.js

Kami memperkenalkan Draft.js di komponen Mention untuk mengimplementasikan fungsi pemosisian prompt drop-down, tetapi kami hanya menggunakan sebagian kecil dari fungsinya. Dari segi cost performance, terlihat sedikit boros. Kami berencana untuk menghilangkan ketergantungan padanya di 4.0 dan beralih ke solusi yang lebih ringan. Pada saat yang sama, untuk membedakan komponen Sebutkan di 3.0, kami akan memberikan Sebutan komponen baru untuk mencegah konflik API. Demikian pula, ini juga mendukung penggunaan berkelanjutan dari metode kompatibel di atas:

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

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

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

🧭 Optimalisasi kinerja

Selama proses pemeliharaan, kami menerima banyak diskusi kinerja tentang data besar. Untuk tujuan ini, kami juga berencana untuk mengoptimalkan kinerja.

Gulir virtual

Pengguliran virtual adalah metode pengoptimalan yang umum, tetapi karena efek animasi di Ant Design, tidak mudah untuk menyesuaikan pengguliran virtual. Sekarang, kami berencana untuk secara native mendukung pengguliran virtual dalam komponen dengan pengguliran. Tentu saja, kami tidak menjamin bahwa semua komponen telah diperbarui saat 4.0 dirilis, dan akan terus diperbarui.

Peningkatan animasi

Dulu, kami menggunakan beberapa peretasan untuk memproses animasi. Dalam kebanyakan skenario, ini bekerja dengan cukup baik. Di 4.0, kami berencana untuk menyesuaikan ini, mengabaikan pendekatan peretasan ke jalur yang lebih React. Penyesuaian akan diperbarui secara diam-diam, Anda tidak perlu mengubahnya.

🧩 Tentang komponen

Di 3.0, kami terus menambahkan banyak komponen. Di 4.0, kami akan melanjutkan. Komponen ini akan disempurnakan dari skenario bisnis kami, Ant Design Pro dan kebutuhan komunitas Ini adalah proses yang berkelanjutan. Proses penambahan komponen baru sama dengan Ant Design 3.0. Kami akan membuat draf desain komponen terkait dan menampilkannya di PR dan memperbaruinya dengan situs resmi. Setelah pengembangan selesai, akan dirilis dalam versi minor bulanan.

Selain itu, kami juga sedang mempersiapkan refactor beberapa komponen utama untuk meningkatkan kemudahan pengembangan dan interaksi. Ini termasuk tetapi tidak terbatas pada:

Komponen bentuk

Audiens komponen formulir sangat besar. Kami juga memperhatikan keluhan komunitas tentang API formulir yang merepotkan. Di 4.0, kami berharap dapat menjelajahi formulir API yang lebih baik untuk menyederhanakan biaya pengembangan:

  • Formulir akan menggabungkan bidang data formulir secara default, dan Anda tidak perlu lagi membuat konteks melalui Form.create() .
  • Fom.Item akan menggabungkan bidang formulir secara default, Anda tidak perlu mengikat Bidang melalui getFieldDecorator .
  • Nilai Form.Item akan selalu dipertahankan, tetapi fungsi validasinya hanya akan berlaku jika item formulir terlihat.
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>
  );
}

Dalam pemandangan nyata, kami menemukan pemandangan tautan multi-bentuk (umum dalam konfigurasi terperinci). Kami tahu ini tidak nyaman digunakan, jadi kami juga akan menyediakan fungsi tautan antar formulir:

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

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

Jika Anda ingin mengikuti kemajuan Formulir, silakan periksa kemajuannya .

Komponen tabel

Di versi sebelumnya, kami menerima banyak umpan balik tentang komponen Tabel . Kita tahu bahwa properti perluasan dan gulir Tabel tidak berfungsi dengan baik di masa lalu. Kali ini, kami akan fokus pada penyelesaian konflik di kawasan ini. Selain itu, kami akan lebih mengoptimalkan kinerja komponen Tabel. Dan jelajahi beberapa metode tata letak tabel yang lebih sederhana:

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

Selain itu, kami juga berencana menambahkan Footer Ringkasan untuk mendukung persyaratan ringkasan.

DatePicker ulangi

DatePicker yang ada telah memenuhi sebagian besar kebutuhan, tetapi dari diskusi komunitas . Kami masih memiliki kesempatan untuk menggali lebih dalam lagi, sisa tahun penyeleksi akan kami selesaikan dan range selector yang sesuai ( diskusi ). Selain itu, kami akan menyesuaikan gaya penyeleksi tanggal dan waktu terkait untuk lebih mengurangi biaya kognitif pengguna.

🚀 Terus perbarui

Selain konten di atas, kami juga berencana untuk terus mengupdate beberapa konten. Ini akan ditindaklanjuti di 4.0 untuk lebih meningkatkan pengembangan pengguna dan pengalaman pengguna.

🧶 Tingkatkan pengalaman aksesibilitas

Ant Design 3.0 tidak memiliki dukungan untuk pengalaman aksesibilitas. Oleh karena itu, kami berencana untuk menyesuaikan struktur komponen dan menambahkan lebih banyak tag aria untuk meningkatkan pengalaman membaca layar. Selain itu, kami juga sedang mempersiapkan untuk mengoptimalkan metode interaksi keyboard komponen yang ada untuk memastikan pengalaman interaksi keyboard lengkap yang lebih baik.

🎯 Spesifikasi API Pengembang

Dalam perjalanan evolusi, kami menemukan bahwa beberapa gaya API tampaknya tidak kompatibel dengan komponen lain. Untuk pengguna TypeScript, ini bukan masalah, tetapi untuk pengguna lain, ini dapat menyebabkan masalah memori.

Jadi kami akan menyusun dokumen penamaan standar. Dokumen tersebut akan berisi daftar API yang ada dan konvensi penamaan yang sesuai. Saat menambahkan fitur baru, fitur tersebut juga akan diberi nama sesuai dengan spesifikasi ini. Untuk menghindari perbedaan API yang mungkin timbul di masa mendatang. Tentunya kami juga menerima masukan dari komunitas mahasiswa di Humas.

💼 Bereaksi mode ketat

Jika Anda mencoba membungkus <React.StrictMode> luar komponen antd, Anda akan mendapatkan banyak pesan peringatan dari komponen antd. Kami telah memperbarui metode siklus hidup beberapa komponen di 3.0. Di 4.0, kami akan melanjutkan.

💡 Tingkatkan pengalaman pengembang

Dalam proses pemeliharaan sebelumnya, kami menemukan bahwa masalah tertentu akan muncul bolak-balik. Masalah ini biasa terjadi dalam beberapa spesifikasi penggunaan atau skenario aplikasi. Untuk tujuan ini, kami memutuskan untuk melakukan perbaikan di sini (sebenarnya, sejak 3.0, kami telah meningkatkan). Dalam lingkungan pengembangan, kami akan meminta di konsol untuk beberapa situasi yang tidak terduga (seperti objek Momen yang tidak valid, perubahan struktur Dom yang disebabkan oleh penyesuaian dinamis dari prefiks / imbuhan Input, dll.). Kami yakin bahwa konsol adalah tempat pertama yang akan diperhatikan pengembang saat menghadapi masalah, dan memberikan petunjuk yang sesuai di sini dapat membantu menemukan masalah dengan cepat. Pada saat yang sama, untuk beberapa penggunaan atau skenario khusus. Kami akan memberikan FAQ di dokumentasi komponen yang sesuai. Dari perspektif pemeliharaan proyek, energi kami tidak dapat memberikan jawaban rinci untuk masalah penggunaan. Tetapi pertanyaan-pertanyaan ini nyata, terutama untuk pengembang pendatang baru, FAQ dapat membantu menghemat banyak waktu pencarian. Jika Anda tertarik, relawan komunitas juga dipersilakan untuk membantu meningkatkan pengalaman pengembang.

🐱 Desain manajemen aset

Ant Design bukan hanya sekumpulan pustaka komponen, tetapi juga sistem desain yang kuat di belakangnya. Di 4.0, kami akan memperbarui aset terkait desain terbaru (Paket komponen Sketsa, set alat Dapur, Token Desain, dll.) Untuk memfasilitasi desainer dan mahasiswa yang tertarik dengan desain sebagai referensi. Gaya desain komponen yang ada juga akan disesuaikan untuk meningkatkan efek visual dan pengalaman pengguna.

Rencana waktu

Berikut ini adalah jadwal kami, di mana beberapa pembaruan komponen sedang berlangsung. Kami akan membuat masalah terkait di github dan menyambut relawan komunitas untuk berpartisipasi:

Q2

  • Tandai API wajib yang tidak berlaku lagi sebagai Tidak Berlaku Lagi dan hapus di dokumen.
  • Komponen yang mendasarinya sudah dipanaskan sebelumnya.

P3

  • Buat cabang antd 4.0 dan perbarui dokumentasi.
  • Pengembangan komponen tingkat rendah.

P4

  • Rilis versi 4.0.

Selamat berpartisipasi

Selama proses pengembangan 4.0, konten di atas dapat disesuaikan. Selamat datang siswa komunitas untuk memberikan ide dan saran berharga, mari kita buat Ant Design 4.0 lebih nyaman dan mudah digunakan!

4.x ✨ Announcement 🕙 Plan 🗣 Discussion

Komentar yang paling membantu

15311

Akankah kami mengganti Moment.js di versi 4?

Semua 182 komentar

15311

Akankah kami mengganti Moment.js di versi 4?

Hebat, tidak sabar untuk meningkatkan

V4 alpha mempersiapkan

Terutama Target

  • [x] cabang v4
  • [x] Paket yang kompatibel
  • [x] Hapus Konten yang Tidak Berlaku Lagi

    • [x] Sebutkan Komponen

    • [x] Komponen Sebutan Baru # 16532

    • [x] Form.create

    • [x] Ikon dengan type # 12011

    • [x] Lainnya dengan alat peraga peringatan yang tidak digunakan lagi

  • [x] Lebih sedikit v3
  • [x] Performa

    • [x] peningkatan rc-animate

    • [x] dukungan mode bersamaan

    • [x] Dukungan animasi gulir virtual

    • [x] Gulir Virtual

    • [x] komponen rc

    • [x] Pohon

    • [x] Pilih

    • [x] Pemilihan Pohon

    • [x] Formulir: https://github.com/react-component/form/pull/292

    • [x] Menyediakan versi Hooks

    • [x] Tabel

    • [] templateAreas

    • [x] Dukung expand & scroll rekan kerja

  • [x] DatePicker dengan desain baru

    • [x] YearPicker

    • [x] RangePicker.YearPicker

    • [x] RangePicker.MonthPicker

    • [x] RangePicker.YearMonthPicker

    • [x] RangePickerWeekPicker

    • [x] TimePicker.RangePicker

Lanjutkan Target

  • [] Aksesibilitas
  • [x] Standar API
  • [] React.StrictMode

Berikut beberapa saran tentang Ant 4

Sekitar templateAreas

templateArea parses string saat runtime, ini akan menyebabkan kesalahan penguraian yang tidak dapat diterima atau kesalahan slient saat string salah ketik. Penguraian waktu proses juga tidak cocok untuk TypeScript. Akankah Tim Semut mempertimbangkan proposal di bawah ini:

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

Tentang ketergantungan

Akankah Ant Team mempertimbangkan untuk menghapus ketergantungan moment ?

Momen terlalu besar untuk proyek front-end, ada banyak alternatif, tetapi properti TimePicker dan DatePicker di Momen. Ini membuat kita tidak dapat mengganti moment dengan date-fns atau pustaka lain yang lebih kecil dari Momen.

Tentang Ikon

Saya pikir cara Ikon Semut digunakan sekarang tidak boleh ditinggalkan, cara baru ikon impor dapat menyebabkan perubahan potongan bundel umum ketika saya menambah atau menghapus satu Ikon.

Tim Semut dapat menyediakan dua cara untuk menggunakan Ikon Semut:

  1. Paket semua Ikon ke dalam satu jsfile, pengembang dapat mengimpor seluruh file menggunakan tag <script> , dan menyetel externals di webpack.
  2. Cara baru yang diperkenalkan di atas.

这 是 我 对 Ant4 的 一些 建议

关于templateAreas

templateAreas在 运行 时 对 字符串 进行 解析 , 当 字符串 出现 拼写 误 误 的 时候 , 可能 会 导致 解析 失败 或者 静默 误。 运行 时 解析 对 TypeScript 也也 友好 。Ant 团队 是否 考虑 如下 方案 :

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

关于 依赖

是否 考虑 移除 对 Moment 的 依赖?

Momen 对于 前端 项目 来 时 实在 是 太大 了 , 市面上 有 许多 可供 替代 的 库, 但是TimePickerDatePicker的 参数 依赖 于 Momen 对象 , 这 导致 了 我们 没 办法 使用date-fns或者 一些 i> Momen 更 小 的 库 来 替代 Momen。

关于 图标

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

Semut 团队 可以 提供 如下 两种 方案 来 使用 Semut 图标 :

  1. 打包 所有 图标 到 一个 js 文件 中 , 开发 者 通过<script>标签 引用 全部 图标 , 并且 在 Webpack 中 设assign 为externals
  2. 4.0 新 介绍 的 图标 使用 方式

Ada rencana untuk mendukung gulir virtual untuk tabel? Tabel tak terbatas lebih disukai dalam beberapa kasus daripada penomoran halaman.
Dan karena 'Komentar' termasuk dalam 3.11, mungkinkah ChatBox dan ChatMessage?

Ada rencana untuk mendukung gulir virtual untuk tabel? Tabel tak terbatas lebih disukai dalam beberapa kasus daripada penomoran halaman.
Dan karena 'Komentar' termasuk dalam 3.11, mungkinkah ChatBox dan ChatMessage?

UserInfo mungkin prioritas.

sekitar templateAreas

Saya juga mendukung sintaks array dua dimensi
Saya juga mendukung sintaks array dua dimensi.

Mengenai templateAreas, berikut adalah contoh pemeriksaan statis
Ini adalah contoh pemeriksaan statis tipe menggunakan ts untuk templateAreas

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);

Tempat bermain

image

mengagumkan

15311

Akankah kami mengganti Moment.js di versi 4?

Saya pikir masalah utama untuk menjauh dari moment adalah melanggar perubahan sekitar locale s. https://github.com/ant-design/ant-design/issues/15311#issuecomment -471383811

Semoga dukungan untuk ketikan bisa lebih baik lagi

Hebat melihat 4.0 sedang berlangsung! Saya memiliki beberapa saran di bawah ini untuk dipertimbangkan, saya tidak yakin apakah cocok dengan pola desain, tetapi untuk penyesuaian, saran tersebut akan sangat bagus menurut saya.

  • Mampu mengontrol warna latar belakang baris dalam <Table> . Misalnya mewarnai baris sebagai oranye untuk menyorot peringatan untuk baris itu.
  • Warna tombol, tidak menemukan diskusi sebelumnya seputar ini. Tetapi alangkah baiknya jika memiliki API yang mirip dengan <Tag color="red">RED<Tag /> untuk Buttons, contoh <Button color="red">Red Button<Button/> .
  • Dukungan untuk ikon Font-Awesome 5.x dalam komponen yang berbeda, atau memastikan bahwa mereka akan bekerja dengan Ikon lain bekerja terus menerus. Saya telah memperhatikan beberapa masalah dengan penyelarasan saat menggunakan FA daripada komponen asli <Icon> .
  • Komponen <Pagination> tidak mendukung penyediaan jumlah halaman secara langsung, kasus penggunaannya adalah saya hanya memiliki jumlah halaman dan halaman saat ini yang tersedia untuk saya misalnya, tetapi tidak berapa banyak item dalam setiap halaman. Saya belum menemukan cara yang baik untuk menangani ini.

@orus

Misalnya mewarnai baris sebagai oranye untuk menyorot peringatan untuk baris itu

Saya cenderung menggunakan rowClassName untuk melampirkan kelas ke baris ini dan kemudian mengganti gaya default dengan css.

Itukomponen tidak mendukung penyediaan jumlah halaman secara langsung

Bisa melewati total palsu. Misalnya, jika Anda ingin 50 halaman, dapat melewati total = pageSize * 50 .

Itu benar-benar kabar baik 🚀 Fokus pada kinerja terlihat dan itu bagus, karena beberapa komponen tidak dapat digunakan dengan data dalam jumlah besar.

Bagaimana Anda ingin menerapkan gulir virtual? Menggunakan react-window ?

Apakah ada prioritas untuk fitur target utama?
Saya ingin mencoba pemilihan virtual dalam tahap alfa dan saya rasa saya tidak sendirian dalam hal ini.

Terima kasih.

Mengapa nama string tidak dapat dimuat sesuai permintaan? tidak react's lazy () memecahkan masalah?

@bayu_joo
Ya, tetapi itu tergantung pada karakteristik webpack , operasi tertentu

Dua masalah lebih menonjol

  • /* webpackChunkName: "icons/icon-" */ ditulis dalam webpack disediakan Magic Comments
  • Seperti yang dikatakan aslinya, "Setiap ikon berisi informasi modul Webpack tambahan selain konten ikon"

Ada ide tentang polusi gaya global? # 4331 # 9363

Ada ide tentang polusi gaya global? # 4331 # 9363

IMHO akan sangat bagus untuk 4.0 untuk memungkinkan pengguna untuk menjangkau gaya antdesign dengan nama global (lihat komentar saya https://github.com/ant-design/ant-design/issues/4331#issuecomment-396047487)

Senang mendengar tentang pencapaian berikutnya!

2 Ct saya. mengenai dokumen dan perampingan:

Seringkali ada props yang diteruskan ke elemen DOM yang mendasarinya, yang tidak didokumentasikan (IIRC Dalam beberapa kasus, semua props yang tidak dipilih oleh implementasi komponen dilewatkan). Akan sangat membantu jika mereka didokumentasikan, dikelompokkan berdasarkan elemen target (mungkin saya lebih dari satu): "Properti berikut diteruskan ke penampung

"atau" Alat peraga berikut disalurkan melalui elemen ... "atau" Semua properti lainnya diteruskan ke ... ". Untuk properti tersebut tidak perlu penjelasan rinci, link ke MDN sudah cukup.

Perubahan seperti itu juga akan bagus bagi kami pengembang TypeScript, saat ini banyak pekerjaan yang membosankan untuk menjaga definisi TS tetap mutakhir dalam hal ini.

Dalam "standar API Pengembang", ini harus didokumentasikan, dan harus ada keputusan properti mana yang harus selalu diteruskan (className, id,?)

Pertanyaan lain:

Apakah Anda berencana untuk mengganti lebih banyak file (atau bahkan rc-components) dari JavaScript dengan definisi TypeScript ke TypeScript asli?

Pertimbangkan untuk mengganti rc-form dengan sesuatu yang lebih fleksibel, seperti Formik.

Pertanyaan untuk pengelola:

Tim saya tertarik untuk mencoba Ant, tetapi https://github.com/ant-design/ant-design/issues/11097 (Antd Less membuat kebocoran JavaScript global) memblokir kami. Peta jalan di atas mengatakan bahwa Ant akan pindah ke LESS versi 3, dan saya telah membaca bahwa fitur JavaScript sebaris yang tidak aman dan tidak berlaku lagi dinonaktifkan secara default. Apakah ini berarti bahwa Ant versi 4 tidak lagi memiliki masalah KURANG?

Tidak hanya IE9 / 10, tetapi hentikan dukungan IE,

Ya ampun, akan sangat berguna untuk tidak mencemari gaya global ( html , body , *::before , ...)

Carousel yang berbasis react-slick memiliki banyak masalah saat menggunakannya. Direkomendasikan agar versi baru bisa diganti dengan library lain
react-pannable cukup bagus untuk digunakan

Deskripsi dari komitmen @cztflove perpustakaan ini adalah no message 😃, dan perhatian komunitas terlalu rendah, saya seharusnya tidak mempertimbangkannya.

@ yoyo837 Terutama komponen ini baru, jadi perhatiannya relatif rendah, tetapi mendukung virtual list dan 仿ios边缘弹性 , dan beberapa fungsi 拖拽 dapat direalisasikan berdasarkan komponen ini.🤔 Ada lebih banyak ruang untuk ekspansi di masa depan

Bukankah kita harus pindah ke satu bahasa universal?

Saya sepenuhnya setuju & menghormati bahasa daerah, meskipun saya bukan penutur asli bahasa Inggris. Ada 100-an pengulangan, atau lebih baik untuk mengatakan tugas ganda dengan bahasa ganda, di atas semua faktor terpenting adalah waktu, menerjemahkan string yang dibahas, belajar dari dokumentasi atau tuts. demo dll.

Harus saya akui, tidak sedikit kontributor karena konflik bahasa, masih ratusan dari kita takut untuk terlibat. Sudah ada banyak sprint, masalah yang sedang berlangsung untuk terjemahan, tetapi yang saya minta adalah, untuk sepenuhnya bermigrasi ke satu bahasa universal dengan rilis utama ini untuk mengurangi kesenjangan komunikasi di antara kita semua.

Bukankah kita harus pindah ke satu bahasa universal?

Saya sepenuhnya setuju & menghormati bahasa daerah, meskipun saya bukan penutur asli bahasa Inggris. Ada 100-an pengulangan, atau lebih baik untuk mengatakan tugas ganda dengan bahasa ganda, di atas semua faktor terpenting adalah waktu, menerjemahkan string yang dibahas, belajar dari dokumentasi atau tuts. demo dll.

Harus saya akui, tidak sedikit kontributor karena konflik bahasa, masih ratusan dari kita takut untuk terlibat. Sudah ada banyak sprint, masalah yang sedang berlangsung untuk terjemahan, tetapi yang saya minta adalah, untuk sepenuhnya bermigrasi ke satu bahasa universal dengan rilis utama ini untuk _mengurangi kesenjangan komunikasi_ di antara kita semua.

说得 对 , 专心 说 中文 吧

Pertanyaan untuk pengelola: apakah ada rencana untuk menggunakan CSS vars untuk mengubah warna dan tema gaya saat terbang?

Saya belajar dalam praktik bahwa mengubah gaya komponen melalui variabel adalah cara yang sangat nyaman. Saya mencoba untuk menulis ulang variabel Less dengan var(--css-vars) , tetapi saya menemukan banyak kesalahan pada kompilasi gaya, karena banyak gaya menggunakan fungsi dan operasi dengan vars, bukan hanya nilai. Saya kira ini adalah tugas besar dan dengan cara ini membuat perubahan yang merusak, tetapi versi utama telah dibuat untuk memecahkan perubahan :) Dan penggunaan CSS vars dapat memberikan banyak peluang untuk kustomisasi gaya komponen.

Apa yang kamu pikirkan tentang itu? Saya berencana mengembangkan tema dengan penggunaan vars CSS sebagai permintaan tarik, karena fitur ini (mengubah tema saat penerbangan) diperlukan dalam proyek saya.

Maaf, jika saran itu duplikat, tetapi saya tidak menemukan apa-apa tentang itu di masalah dan PR lain.

@ Z3SA https://caniuse.com/#search = CSS% 20Variables. Ini perlu menghentikan semua dukungan IE, menghentikan dukungan IE11 terlalu radikal, meskipun saya juga mendukung melakukan itu.

@ yoyo837 , saya setuju bahwa itu penyebab terlalu radikal dari masalah dukungan IE. Tetapi juga Ant Design memiliki dukungan resmi (seperti yang diceritakan di ant.design) dari Electron (sebagai platform terpisah, bukan web). Mungkin untuk kasus ini mungkin ada cara untuk membuat dua tema: satu dengan Less vars, lainnya dengan CSS vars. Tapi sepertinya terlalu sulit untuk didukung.

Jadi, kemungkinan strategi lain yang saya kira - buat Less vars untuk semua atribut yang dapat disesuaikan di Less, atau hapus penggunaan fungsi dan operasi apa pun di bawah Less vars yang dapat digunakan oleh pengembang mana pun sebagai entri untuk vars CSS-nya. Atau jika dikatakan lebih sederhana - gunakan Less vars hanya sebagai wadah nilai, bukan untuk fungsi dan operasi.

Jika hanya mendukung browser utama, saya yakin ukuran kodenya akan lebih kecil dan dan kodenya akan lebih mudah dipelihara.

Tidak hanya IE9 / 10, tetapi hentikan dukungan IE,

@wanliyunyan Terlalu melanggar. Beberapa pengembang mungkin tetap menggunakan antd @ 3 dan itu bukan hal yang baik bagi kami.

@ Z3SA Itu akan menjadi pekerjaan besar.

@dancerphil Untungnya, saya hanya mempertimbangkan versi chrome terbaru untuk proyek saya. 😃 Jadi saya berharap semakin kecil ukurannya, semakin baik.

@ yoyo837 Saya tahu itu. Dan saya akan melakukannya sendiri jika ide ini tidak mendapatkan cukup perhatian.

Kami adalah perusahaan yang ingin bermigrasi secara bertahap ke antd dengan menggunakan komponen individu; Namun penggunaan gaya Global oleh semut benar-benar memperumit masalah ini. Tolong berhenti mencemari gaya global.

Formulir adalah salah satu komponen yang paling banyak digunakan. Kami melihat bahwa sosial memiliki banyak komentar tentang desain API. Kami ingin menyederhanakan API di 4.0:

Fom.Item akan menyertakan field bind.

Apakah perubahan ini masih memungkinkan kita untuk menggunakan Form.Item sebagai komponen presentasi yang ketat? Saya suka komponen antd, tapi saya lebih suka react-final-form untuk manajemen negara. Saya ingin gaya Form.Item, dan tidak ada logika manajemen negara.

cabang 4.0 dibuat. Kapan saya bisa melihat pratinjau

komponen formulir baru itu luar biasa!

Silakan ganti momentjs oleh dayjs karena momentjs sangat besar dan ukuran bundel juga menjadi besar.

Apakah ada kesulitan saat mempertimbangkan untuk mengambil alih editor teks kaya?

Kapan tanggal rilisnya?

@rafaelodassi Belum ada tanggal yang dikonfirmasi, tapi mungkin di Q4.

Mengupgrade ke @babel/runtime@7 dan core-js@3 akan menjadi prioritas kami.

Bukan v3? Apakah ada berita tentang core-js@4 ?

Semua orang berbicara tentang menghapus dukungan IE sama sekali karena statistik menunjukkan itu hampir tidak digunakan. Bagaimana dengan jutaan pengguna korporat di balik intranet yang sama sekali tidak masuk ke statistik? Mereka terjebak dengan IE10 dan IE11 karena kebijakan perusahaan.

Saya akan tetap menggunakan antd @ 3 jika dukungan

Saya akan menyarankan memperkenalkan API untuk memungkinkan penggunaan objek sebagai nilai <Select/> .
untuk detailnya silakan lihat https://github.com/ant-design/ant-design/issues/13485

cc @zombieJ

Direkomendasikan agar setiap komponen memiliki log update sendiri. Tidak masalah jika Anda menyembunyikannya. Saran pribadi ~

Kapan Rilis atau RC bisa dilakukan?

Direkomendasikan agar setiap komponen memiliki log update sendiri. Tidak masalah jika Anda menyembunyikannya. Saran pribadi ~

Setuju, apakah dokumentasi tiap komponen bisa ditambah dengan versi yang mana. Jika tidak, Anda dapat melihat dokumentasi dan melihat apakah versi saat ini dapat digunakan dan apakah akan memperbarui dependensi.

Dikirim dengan GitHawk

@ fwh1990 @ jas0ncn @redclown
dalam bahasa Inggris)

Simpan sebagai saluran berbahasa Inggris, terima kasih ~

4.0 alpha diterbitkan. Itu luar biasa. Ayo saudara.

Saya akan memfaktorkan ulang proyek saya setelah Anda menerbitkan versi beta

Tema default antd itu indah, tetapi juga bisa lebih baik.
Untuk keterbacaan, pertimbangkan kontras yang ditingkatkan dan gunakan teks yang lebih besar.

Ada begitu banyak artikel dan alat.
https://www.google.com/search?q=web+readability

Lebih baik menyediakan skrip untuk memindahkan antd v3 ke v4.

Dalam proyek biz, terlalu banyak komponen formulir. Migrasi antd v3 ke v4 akan memakan banyak biaya.

Tim react-relay telah melakukan hal serupa.
Jika Anda ingin memindahkan react-relay v3 ke react-relay v4 Realease , Anda perlu memodifikasi banyak file.
Untuk itu, mereka menggunakan jscodeshift untuk menulis skrip migrasi, sehingga pengguna react-relay dapat dengan mudah melakukan Migrasi react-relay v3 ke v4.

Saya merasa sulit untuk menimpa beberapa gaya. Jadi apakah ada rencana untuk memperbaikinya?

Saya pribadi lebih suka menggunakan CSS-in-JS, ini sangat fleksibel dan sangat cocok dengan React.

Saat menggunakan komponen kelas di bawah 4.0 alpha, entitas formulir tidak dapat diperoleh, https://5d403395cd145c0008eea971--ant-design.netlify.com/components/form/v3-cn Kode sampel di bawah tautan ini tidak dapat diterapkan, dan tidak ada entitas di formRef metode

Dipecahkan dalam

@ Kwei9 , dapatkah Anda membuka masalah dan melampirkannya untuk mereproduksi?Biar saya lihat

@ Kwei9 , dapatkah Anda membuka masalah dan melampirkannya untuk mereproduksi?Biar saya lihat

Tulisan referensi diubah menjadi solusi ini

Saya pikir sekarang akan menjadi waktu untuk mengatasi polusi gaya global! Ini membuatnya sangat harus menggunakan antd bersama dengan aplikasi lain!

Momen terlalu besar untuk proyek front-end, ada banyak alternatif, tetapi properti TimePicker dan DatePicker menyampaikan pada Momen. Itu membuat kita tidak bisa menggantikan momen ...

@ jas0ncn Hai, mohon pertimbangkan untuk mengganti momentjs dengan dayjs (alternatif 2kb). Ini sudah menjadi masalah teruji dari Replace Moment.js in Ant Design (Antd) dengan Day.js https://github.com/iamkun/dayjs/issues/529 dan bekerja dengan sangat baik.

Sebagai pengelola inti dari dayjs, kami bersedia menawarkan bantuan apa pun dengan penggantian ini.

Terima kasih.

请 考虑 使用 轻 量 的 Dayjs 来 替换 moment.js, 在 这里 已经 充分 测试 过 替换 的 可行性https://github.com/iamkun/dayjs/issues/529

Cara penggunaan Ikon lama akan * tidak digunakan lagi *:

import { Icon, Button } from 'antd';

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

Akan menggunakan Impor Ikon tunggal sebagai gantinya di 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>
);

Saya punya ide tentang referensi ikon baru. Karena kata-kata baru di atas, setiap ikon setara dengan komponen terpisah. Misalnya, pengenalan ikon pemuatan mungkin terlihat seperti ini:

import Loading from 'antd/icons/Loading';

<Loading />

Tetapi biasanya Anda dapat merangkum sendiri komponen pemuatan yang sebenarnya, dan <Icon /> untuk mengetahui bahwa ini adalah ikon secara sekilas. Sekarang ini membutuhkan terlalu banyak nama dan saya ingin tahu bahwa ikon tersebut harus naik dan menemukan tempat impor.
seperti:

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

Sekilas, dua hal berikut ini tidak dapat dilihat sebagai ikon (tentu saja, tidak berpengaruh pada jalannya kode ~)
Jika Anda mengubah kata-kata berikut:

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

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

Melalui lapisan terluar roti, tampilannya sangat mirip dengan yang sebelumnya, dan juga dapat digunakan sesuai permintaan, tidak lebih dari memperkenalkan komponen Icon.
Dan jika konvensi tertentu terpenuhi, Ikon yang ditentukan pengguna dapat dikirimkan melalui atribut spesifikasi? Ini setara dengan antd yang membantu mendefinisikan banyak ikon sebelumnya, tetapi ikon yang ditentukan pengguna persis sama ~~~ (Katakan saja ~)

ps: Ataukah tulisan semacam ini sebenarnya sudah lama terpikirkan atau tidak dipikirkan karena ada masalah? . . 😂
Saya baru saja memikirkannya. . .

@ppbl mirip dengan berikut ini menurut ide Anda:

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

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

Ikon baru juga dibuat dengan cara yang sama, lihat https://github.com/ant-design/ant-design-icons/blob/master/packages/icons-react/src/icons/AccountBook.tsx

Bisakah kita menghindari situasi ini dengan menambahkan awalan / akhiran Ikon ke nama Ikon?

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

<LoadingOutlineIcon  {...otherProps}/>

Harap bekerja untuk mengurangi ukuran bundel
https://github.com/ant-design/ant-design/issues/9419
Saat mengimpor Button menambahkan 95kb ke proyek - itu tidak bisa diterima pada 2019. 👎

@vagusX Mungkin menurut saya namanya agak panjang? Saya selalu berpikir bahwa namanya ringkas dan terlihat seperti komponen kecil atau komponen yang relatif tunggal.Namanya terlalu panjang dan seharusnya komponen besar (tentu saja ini perasaan yang salah ~ saya tahu). . ~

Tentu saja, jika saya tahu bahwa itu adalah ikon hanya untuk melihat <Icon /> , saya juga dapat membuat komponen <Icon /> sendiri, dan kemudian membungkus ikon antd saat menggunakannya. Efeknya hampir sama. ~ Saya hanya merasa itu semua adalah ikon, dan itu memang sekumpulan nama yang tersebar. Rasanya agak aneh. Bedanya, dulu saya tahu ikonnya dulu, lalu saya tahu jenisnya. Sekarang saya tahu jenisnya dulu, lalu saya tahu, oh, itu ikon ~

@ avalanche1 Anda dapat melihat hasil analisis bundel dari pr https://github.com/ant-design/ant-design/pull/18217#issuecomment -520683838, dan ukuran komponen Button menurun dengan jelas

Senang mendengarnya. Tetapi pada tangkapan layar Anda tidak ada indikasi ukuran sebenarnya, jadi saya tidak dapat mengonfirmasi atau membantah.

Saya akan memigrasi Formulir ke API baru, tetapi saya menemukan bahwa versi formulir bidang tidak stabil, jadi saya ingin tahu apakah itu akan merusak perubahan dengan antarmuka ini sekarang di masa mendatang.

@bayu_joo ,
antd merilis versi 4.0-alpha.x untuk relawan sosial & internal untuk mengujinya. Jika tidak ada umpan balik negatif dari versi alfa, api ini akan menjadi yang terakhir pada rilis.

@ avalanche1 @ant-design/icons v4-alpha version mendukung pengocokan pohon, jadi ukuran bundel bergantung pada berapa banyak ikon yang Anda gunakan dalam proyek Anda sendiri, apakah Anda menggunakan komponen antd yang mengimpor ikon secara internal atau Anda menggunakan @ant-design/icons secara langsung, jadi mungkin saya tidak dapat memahami kekhawatiran Anda tentang hal ini.

Mengapa kita berbicara tentang ikon ketika posting awal saya tentang Tombol, Kalender, dan komponen lainnya? https://github.com/ant-design/ant-design/issues/9419

Nilai DatePicker harus berupa momen, bisakah di hapus momen? Jika saya memperbarui dari, saya harus mengubah ke momen

Untuk moment , inilah pertimbangan saya. DatePicker masih menggunakan moment secara default sejak persyaratan kompatibilitas, tetapi ini menyediakan fungsi pabrik untuk dibuat dengan lib tanggal lain:

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 />;

Hanya berpikir, selamat datang untuk diskusi.

Sekaranglah waktunya untuk menyingkirkan moment.js !

  1. Moment.js tidak akan rumit . (Mereka perlu menulis ulang dari awal). Ini merupakan biaya overhead yang sangat besar untuk antd dan pengguna.

  2. Ant Design v4 adalah rilis utama dengan perubahan yang sudah mengganggu. Sekarang saatnya!

  3. Saya menyarankan untuk tidak menggantinya dengan perpustakaan lain. Antd mungkin menggunakan sesuatu yang kecil seperti dayjs atau date-fns internal tetapi ia harus menerima objek atau string asli Date untuk komponennya.

Setiap kali Anda menelepon moment() , seekor anak anjing mati ..

:anjing:

@zombieJ ingin tahu bagaimana kemajuan komponen Tabel, apakah ada versi pratinjau seperti Formulir yang tersedia? Saya hampir muntah darah total😂

Apakah versi alfa sudah menyertakan Tabel baru? Jika demikian, situs pratinjau harus berisi contohnya?

Tabel dalam antrian, saat ini saya sedang mengerjakan daftar virtual.

Bagaimana dengan dukungan komponen bergaya?

Formulir initialValues ​​tidak disetel moment . https://github.com/react-component/field-form/blob/master/src/interface.ts#L7

Saya berharap Formulir dapat memberikan versi yang tidak terkontrol untuk menyelesaikan masalah kinerja formulir besar seperti Excel

Adakah kemungkinan dokumentasi alfa dapat dipindahkan ke situs dokumentasi Ant biasa?

Majikan saya memblokir domain Netlify dan saya berasumsi orang lain mungkin juga.

Adakah rencana konkret untuk mendukung pengoperasian keyboard melalui Menu dan Dropdown?

Adakah kemungkinan dokumentasi alfa dapat dipindahkan ke situs dokumentasi Ant biasa?

Majikan saya memblokir domain Netlify dan saya berasumsi orang lain mungkin juga.

Mengapa? lol

Diharapkan komponen Tabel akan menyerupai komponen Elemen Tabel. Setiap kolom akan secara otomatis mengatur lebar terlebih dahulu. Disarankan agar karakter header tabel diubah menjadi min-width daripada mengubah garis. Diharapkan pelipatan dan fungsi scrolling dapat digunakan secara bersamaan, diharapkan tabel yang berbentuk pohon akan menyerupai TreeSelect ketika beberapa pilihan dibuat.

Saya berharap komponen Tabel bisa seperti komponen Tabel dari Element. Setiap kolom otomatis mengatur lebar terlebih dahulu. Disarankan untuk mengubah karakter kepala tabel menjadi min-width tanpa membungkus. Saya berharap fungsi lipat dan fungsi scrolling dapat digunakan secara bersamaan. Saya berharap tabel pohon ada dalam banyak pilihan. , Bisa serupa dengan TreeSelect

Adakah kemungkinan bahwa dengan v4 atau mungkin v5 Anda akan melakukan sesuatu tentang kustomisasi? MaterialUI jauh lebih mudah untuk disesuaikan yang terus menjadikannya pilihan untuk proyek yang saya kerjakan, bahkan jika saya benar-benar ingin menggunakan AntD karena jauh lebih lengkap dll.
Tolong, jatuhkan lebih sedikit untuk sesuatu yang lebih baik untuk kustomisasi.

Setelah mengizinkan biro iklan menguji aplikasi web antd kami, mereka mengidentifikasi kelemahan aksesibilitas yang serius dan kami mendapatkan nilai terburuk. Saat menyelidiki alasan utamanya, intinya adalah komponen-rc berikut:

  • rc-select (kami harus mengganti dengan Downshift dan menerapkan gaya antd di atas)
  • rc-tabs (lihat # 18798)
  • dan mungkin yang lain tidak kami gunakan selama ini

Seberapa besar tata kelola yang dimiliki antd terhadap rc-components dan apakah tim dapat memperbaikinya tepat waktu untuk rilis 4.0? Aksesibilitas akan selalu relatif tidak diprioritaskan, tetapi kenyataannya, semakin sulit untuk mengabaikannya karena perusahaan secara hukum terikat untuk menyediakan aplikasi yang dapat diakses oleh karyawan / pelanggan.

Anda dapat mengandalkan saya dalam beberapa pengujian berat dengan pembaca layar dan tolok ukur terhadap praktik terbaik.

MaterialUI jauh lebih mudah untuk disesuaikan

@murbanowicz bisakah Anda menjelaskan? Saya ingin tahu mengapa Anda berpikir seperti itu.

@abenhamdine Tidak masalah!
Di MUI ada ThemeProvider yang Anda bungkus aplikasi Anda dan Anda mengkonfigurasi seluruh tema hanya dengan objek JS yang diketik dalam TypeScript sehingga sangat bagus untuk dikerjakan.

Di AntD untuk menyesuaikan Anda harus mengacaukan LESS atau SASS (dengan beberapa plugin) sehingga Anda harus mempertahankan deps lain dll, Anda harus melalui sumber komponen untuk menemukan variabel yang ingin Anda ubah untuk komponen tertentu dll.
Selain itu, tidak ada cara yang baik untuk mengubah tema dalam runtime yang begitu mudah dengan MUI, hanya dengan mengganti objek JS yang dapat dengan mudah diambil dari server, dll.

Pada dasarnya ketika Anda mencari kustomisasi AntD dan MUI, Anda menemukan contoh mudah di MUI karena tidak ada yang perlu dibicarakan karena langsung ke depan, tetapi ketika Anda mencari di Google untuk kustomisasi AntD, Anda menemukan banyak solusi hacky dll.

Saya suka AntD untuk penyelesaian dan begitu banyak komponen hebat, tetapi penyesuaian sangat buruk dan berdasarkan pengalaman saya dan berbicara dengan pengembang lain, itu harus menjadi salah satu poin utama pada peta jalan

@abenhamdine Tidak masalah!
Di MUI ada ThemeProvider yang Anda bungkus aplikasi Anda dan Anda mengkonfigurasi seluruh tema hanya dengan objek JS yang diketik dalam TypeScript sehingga sangat bagus untuk dikerjakan.

Di AntD untuk menyesuaikan Anda harus mengacaukan LESS atau SASS (dengan beberapa plugin) sehingga Anda harus mempertahankan deps lain dll, Anda harus melalui sumber komponen untuk menemukan variabel yang ingin Anda ubah untuk komponen tertentu dll.
Selain itu, tidak ada cara yang baik untuk mengubah tema dalam runtime yang begitu mudah dengan MUI, hanya dengan mengganti objek JS yang dapat dengan mudah diambil dari server, dll.

Pada dasarnya ketika Anda mencari kustomisasi AntD dan MUI, Anda menemukan contoh mudah di MUI karena tidak ada yang perlu dibicarakan karena langsung ke depan, tetapi ketika Anda mencari di Google untuk kustomisasi AntD, Anda menemukan banyak solusi hacky dll.

Saya suka AntD untuk penyelesaian dan begitu banyak komponen hebat, tetapi penyesuaian sangat buruk dan berdasarkan pengalaman saya dan berbicara dengan pengembang lain, itu harus menjadi salah satu poin utama pada peta jalan

penjelasan yang jelas dan tepat, thx!

@abenhamdine Tidak masalah!
Di MUI ada ThemeProvider yang Anda bungkus aplikasi Anda dan Anda mengkonfigurasi seluruh tema hanya dengan objek JS yang diketik dalam TypeScript sehingga sangat bagus untuk dikerjakan.

Di AntD untuk menyesuaikan Anda harus mengacaukan LESS atau SASS (dengan beberapa plugin) sehingga Anda harus mempertahankan deps lain dll, Anda harus melalui sumber komponen untuk menemukan variabel yang ingin Anda ubah untuk komponen tertentu dll.
Selain itu, tidak ada cara yang baik untuk mengubah tema dalam runtime yang begitu mudah dengan MUI, hanya dengan mengganti objek JS yang dapat dengan mudah diambil dari server, dll.

Pada dasarnya ketika Anda mencari kustomisasi AntD dan MUI, Anda menemukan contoh mudah di MUI karena tidak ada yang perlu dibicarakan karena langsung ke depan, tetapi ketika Anda mencari di Google untuk kustomisasi AntD, Anda menemukan banyak solusi hacky dll.

Saya suka AntD untuk penyelesaian dan begitu banyak komponen hebat, tetapi penyesuaian sangat buruk dan berdasarkan pengalaman saya dan berbicara dengan pengembang lain, itu harus menjadi salah satu poin utama pada peta jalan

Saya setuju dengan @murbanowicz bahwa penyesuaian dengan Antd bisa sedikit berantakan (gaya global bocor, cara hacky menggunakan Sass, konflik prioritas antara penggantian gaya, cukup banyak ketergantungan eksternal seperti moment mengarah ke ukuran bundel yang besar ), tetapi karena telah menggunakan MUI untuk waktu yang lama, menurut saya Antd jauh lebih dapat disesuaikan.

Saya tidak memperbarui rilis baru MUI, tetapi terakhir kali saya memeriksa, ada bagian dari komponen yang tidak dapat Anda sesuaikan, karena MUI menggunakan styled-components , jika pengembang tidak menambahkan classNames everywhere, Anda tidak bisa begitu saja memilih className komponen yang tepat dan menimpanya dengan gaya Anda sendiri.
Tema itu keren untuk penggunaan langsung dari perpustakaan, tetapi jika Anda ingin menyesuaikan gaya dengan sistem desain Anda, itu sangat berantakan dengan MUI, terkadang bahkan tidak mungkin;)

Tapi tetap saja, antd memang membutuhkan beberapa pekerjaan untuk membuat pengalaman kustomisasi lebih mudah;)

@bayu_joo
rc-select merilis versi alfa yang meningkatkan aksesibilitas. Anda dapat membantu mengujinya. Dan v4 mempersiapkan cabang telah menggunakannya, Anda dapat melihat pratinjau di atas.
Untuk rc-tabs , karena ini bukan prioritas utama, saya akan meningkatkannya juga, tetapi nanti.

@ ZombieJ baiklah, saya akan melihat rc-select alpha.

Meskipun rc-tabs bukan prioritas, dapatkah Anda melihat permintaan pull saya, di mana saya memperbaiki poin paling penting dari hasil uji aksesibilitas kami?

Saya punya masalah di sini Menurut metode reformasi ikon saat ini, jika ada bentuk dan ikon komponen antd
Ketika formulir diperkenalkan pada saat yang sama, dapatkah hanya satu alias yang diberikan?

@zkwolf Ya, kami mengganti nama ikon: https://github.com/ant-design/ant-design-icons/pull/118

cc @agus

Saya sangat ingin agar masalah dengan rendering ulang

Harap dicatat bahwa di https://next.ant.design Komponen tidak diurutkan menurut abjad di sidebar komponen
Schermata 2019-09-30 alle 18 01 03

Seperti yang mungkin Anda ketahui, desain semut tidak berfungsi dengan baik dalam hal aksesibilitas. Ini tidak terlalu terlihat di permukaan bagi sebagian besar orang, tetapi menjadi masalah besar saat Anda menyelami lebih dalam. Lihat bagaimana desain semut mendapat skor cukup buruk di sini: https://darekkay.com/blog/accessible-ui-frameworks/

Kabar baiknya adalah, karena saya sangat menyukai desain semut dan ingin menggunakannya lebih lanjut untuk proyek perusahaan, tujuan saya adalah membawanya ke daftar teratas.

Saya mengizinkan biro iklan menguji salah satu aplikasi perusahaan saya untuk klien di Jerman (di mana aksesibilitas merupakan topik besar di perusahaan besar). Hal yang paling kritis adalah:

  1. Aksesibilitas pembaca layar untuk komponen dasar tetapi penting seperti Select, Autocomplete, dan Tab
  2. Warna kontras di banyak tempat
  3. Navigasi keyboard di beberapa tempat

Saya memilih rc-tabs pertama sebagai kemenangan cepat untuk memperbaiki semua masalah aksesibilitasnya - ini akan segera keluar (https://github.com/react-component/tabs/pull/218). Tapi yang paling membuatku khawatir adalah rc-select , terutama bagian combobox (pelengkapan otomatis) darinya. Kotak kombo adalah salah satu aspek paling rumit dari aksesibilitas pembaca layar dan mudah untuk salah. Untuk memperbaiki semua masalah, diperlukan tidak hanya beberapa penyesuaian pada properti aria tetapi juga perombakan besar-besaran.

Untuk memperbaikinya dengan cepat di aplikasi saya sebelum go-live, saya telah mengganti Select dan AutoComplete ant-design ( rc-select ) dengan komponen saya sendiri berdasarkan https://github.com/downshift-js/downshift. Saya baru saja mereplikasi praktik terbaik ARIA dan menerapkan gaya antd di atas - terlihat hampir persis sama dan dapat diakses dengan sempurna.

Jadi pertanyaan provokatifnya adalah: apakah Anda akan mempertimbangkan untuk tidak melakukan pekerjaan ganda dan mencela rc-select demi perpustakaan downshift yang lebih populer dan lengkap? Anda dapat menghemat waktu dalam tim dan fokus untuk menyempurnakan komponen inti lainnya, yang tidak memiliki alternatif yang baik di pasar sumber terbuka.

Ide ini terlihat fantastis bagi saya @filipjnc . Juga, turunkan itu 1/4 dari ukuran rc-pilih. Saya berharap tim antd bisa melakukan ini.

Saya ingin melihat lebih banyak peningkatan warna dalam rilis 4.0. Secara khusus, dokumen tersebut menyebutkan "Palet Warna Visualisasi Data (Segera hadir)" yang akan sangat membantu di dasbor dan aplikasi berat data lainnya. Abu-abu hangat dan dingin juga akan membantu membangun palet warna yang lebih kohesif. Selain itu, ini adalah kesempatan bagus untuk memperbaiki kontras warna untuk aksesibilitas (seperti yang disebutkan oleh @filipjnc). Pertahankan kerja bagus 👍

Seperti yang mungkin Anda ketahui, desain semut tidak berfungsi dengan baik dalam hal aksesibilitas. Ini tidak terlalu terlihat di permukaan bagi sebagian besar orang, tetapi menjadi masalah besar saat Anda menyelami lebih dalam. Lihat bagaimana desain semut mendapat skor cukup buruk di sini: https://darekkay.com/blog/accessible-ui-frameworks/

Kabar baiknya adalah, karena saya sangat menyukai desain semut dan ingin menggunakannya lebih lanjut untuk proyek perusahaan, tujuan saya adalah membawanya ke daftar teratas.

Saya mengizinkan biro iklan menguji salah satu aplikasi perusahaan saya untuk klien di Jerman (di mana aksesibilitas merupakan topik besar di perusahaan besar). Hal yang paling kritis adalah:

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

Saya memilih rc-tabs pertama sebagai kemenangan cepat untuk memperbaiki semua masalah aksesibilitasnya - itu akan segera keluar ( react-component / tabs # 218 ). Tapi yang paling membuatku khawatir adalah rc-select , terutama bagian combobox (pelengkapan otomatis) darinya. Kotak kombo adalah salah satu aspek paling rumit dari aksesibilitas pembaca layar dan mudah untuk salah. Untuk memperbaiki semua masalah, diperlukan tidak hanya beberapa penyesuaian pada properti aria tetapi juga perombakan besar-besaran.

Untuk memperbaikinya dengan cepat di aplikasi saya sebelum go-live, saya telah mengganti Select dan AutoComplete ant-design ( rc-select ) dengan komponen saya sendiri berdasarkan https://github.com/downshift-js/downshift. Saya baru saja mereplikasi praktik terbaik ARIA dan menerapkan gaya antd di atas - terlihat hampir persis sama dan dapat diakses dengan sempurna.

Jadi pertanyaan provokatifnya adalah: apakah Anda akan mempertimbangkan untuk tidak melakukan pekerjaan ganda dan mencela rc-select demi perpustakaan downshift yang lebih populer dan lengkap? Anda dapat menghemat waktu dalam tim dan fokus untuk menyempurnakan komponen inti lainnya, yang tidak memiliki alternatif yang baik di pasar sumber terbuka.

Saya tidak akan terlalu antusias dengan penurunan gigi, lihat https://github.com/downshift-js/downshift/issues/730
Aksesibilitas penting bagi sebagian pengguna, tetapi kinerja penting bagi lebih banyak pengguna.

Tabel dalam antrian, saat ini saya sedang mengerjakan daftar virtual.

hai, @zombieJ
Apakah ada kemajuan dalam Footer Ringkasan?

@ alexa_69 ,
Menunggu pembaruan kode siklus hidup baru. Tabel berikutnya setelah selesai:)

4.0 Dapatkah beberapa parameter alat peraga diubah menjadi kotak unta? Misalnya, Input.TextArea dalam autosize diubah menjadi autoSize ?
Properti dari tag HTML asli di React semuanya case unta, seperti <input autoComplete /> , autosize selalu terlihat sumbang. . .

Ini dapat diubah dalam 3.x, kompatibel dengan dan membuang penggunaan aslinya. @ jinliming2 Apakah Anda tertarik dengan PR?

  • 4.0 Mengapa menandai props.children of Tree sebagai api usang, dan merekomendasikan metode data murni treeData sebagai gantinya. Saya merasa props.children sangat berguna dan sangat bisa dimainkan
  • ComponentWillReceiveProps telah ditandai sebagai usang di api terbaru dari react.Saat ini, ditemukan bahwa komponen tabel dan komponen Animate masih ada selama uji coba.

1 untuk aksesibilitas. Silahkan!

Bicara soal ukuran clear icon, sepertinya icon komponen lain adalah 12px, dan datepicker adalah 14px. Adakah pertimbangan perbedaan ukuran clear komponen lain dengan ikon suffix ataukah karena datepicker adalah icon switch dan 14px?Apakah Anda punya rencana untuk menyatukan ukurannya

@zombieJ berencana menambahkan fungsi pengurutan multi-kolom tabel

tolong tulis dalam bahasa Inggris

Akankah masalah ukuran momen yang terlalu besar diperbaiki?

Akankah masalah ukuran momen yang terlalu besar diperbaiki?

Coba gunakan dayjs dulu

Bisakah dalam bahasa Inggris? Pertimbangkan untuk mempertimbangkan perasaan orang asing. Saya selalu google translate. Tidak penting standar tata bahasanya tidak standar. Kata-katanya bisa dimengerti oleh mereka

@fachrizal
Apakah Anda menganggap bahwa orang asing mengikuti repo ini? Sayangnya, Google Terjemahan bukanlah alat yang baik untuk memahami apa yang Anda katakan. Saya menyadari bahwa sebagian besar pengembang dan pengguna Ant-Design adalah orang China, tetapi apakah Anda juga menganggap non-China?
Oleh karena itu, saya mendorong Anda untuk menggunakan bahasa internasional untuk menghormati kita semua.

Hai,
Saya ingin mencoba Ant Design 4.0 dengan create-react-app dan Typescript.
Saya mengikuti instruksi di https://next.ant.design/docs/react/introduce tetapi tidak bisa mendapatkan aplikasi yang berfungsi.
Mengikuti instruksi dasar ( import Button from 'antd/es/button'; ) untuk kesalahan penyebab create-react-app:

tidak dapat menemukan modul antd / es / tombol

Setelah menambahkan react-app-rewired, customize-cra, babel-plugin-import dan mengubah impor menjadi import {Button} from 'antd' Saya mendapatkan pesan kesalahan:

Tidak dapat menemukan file deklarasi untuk modul 'antd'

Bisakah Anda memberi saya saran tentang cara membuat antd4 berfungsi dengan crea-react-app dan typescript?

@bayu_joo
Periksa apakah node_modules dipasang dengan benar.

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

@lvlohammadi Sayangnya, beberapa orang Tionghoa seperti saya tidak bisa berbahasa Inggris dengan baik, tapi saya akan berusaha sebaik mungkin untuk menggunakan bahasa internasional untuk berpartisipasi dalam komunikasi komunitas.

@bayu_joo
Periksa apakah node_modules dipasang dengan benar.

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

Kamu benar. saya berlari

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

sebagai gantinya

yarn add "[email protected]"

Malu...
Terima kasih.

dropdownMatchSelectWidth pada Select component break pada versi alpha, efektif pada versi sebelumnya

Jika saya memulai proyek baru menggunakan antd, apakah Anda akan memilih versi 3 atau 4 alpha? Seberapa "produksi siap" adalah versi 4? Apakah Anda masih menginginkan rilis q4?

Jika saya memulai proyek baru menggunakan antd, apakah Anda akan memilih versi 3 atau 4 alpha? Seberapa "produksi siap" adalah versi 4? Apakah Anda masih menginginkan rilis q4?

Antd 4 belum siap produksi. Anda harus mulai dengan antd 3, transisi harus mudah (terutama jika codemod disediakan seperti yang diharapkan).

Saya berharap untuk melihat pemisahan lengkap antara logika dan tampilan, yaitu, selain memanipulasi nama kelas, js tidak melakukan apa pun pada tampilan. Penampilan visual semuanya harus ditangani oleh CSS (LESS). Selain itu, alih-alih Komponen React, mungkin gunakan Komponen Web sehingga pengembang non-React dapat menggunakannya dengan lebih mudah.

Saya berharap untuk melihat pemisahan lengkap antara logika dan tampilan, yaitu, selain memanipulasi nama kelas, js tidak melakukan apa pun pada tampilan. Penampilan visual semuanya harus ditangani oleh CSS (LESS). Selain itu, alih-alih Komponen React, mungkin gunakan Komponen Web sehingga pengembang non-React dapat menggunakannya dengan lebih mudah.

Saya pikir ide untuk memurnikan semuanya ini tidak ada gunanya. Lebih baik fokus pada sesuatu yang lebih penting.

Adakah rencana untuk multi-pilih di AutoComplete, seperti https://react-select.com?

Saya berharap untuk melihat pemisahan lengkap antara logika dan tampilan, yaitu, selain memanipulasi nama kelas, js tidak melakukan apa pun pada tampilan. Penampilan visual semuanya harus ditangani oleh CSS (LESS). Selain itu, alih-alih Komponen React, mungkin gunakan Komponen Web sehingga pengembang non-React dapat menggunakannya dengan lebih mudah.

Saya pikir ide untuk memurnikan semuanya ini tidak ada gunanya. Lebih baik fokus pada sesuatu yang lebih penting.

Saya tidak berpikir ada masalah yang lebih mendesak daripada perpisahan. Dalam tim, CSS umumnya ditangani oleh desainer, sedangkan JS biasanya ditangani oleh pembuat kode. Membiarkan keduanya memanipulasi gaya akan menyebabkan kekacauan dan kehilangan waktu pengembangan yang tidak perlu.

Ambil Menu misalnya, lebar dan tinggi default diatur oleh JS, masalahnya adalah, ketika seseorang ingin mengubah lebar atau tinggi pembungkus luar, menu akan menonjol atau memiliki celah di sekitarnya. Ini akan membutuhkan baik perancang dan pembuat kode untuk memperbaikinya, yang berarti waktu henti.

Selain itu, sebagai komponen, kodenya tidak terlalu rumit, pemisahan seharusnya tidak memakan banyak usaha, tetapi hasilnya akan membuat hidup lebih mudah bagi pengguna, dan tim ant.design itu sendiri.

Masalah kecil lainnya, Ikon harus default ke 16px, bukan 14px, yang merupakan ukuran font default global. Ini berarti Ikon harus menggunakan variabel seperti @ default-icon-size, @ icon-size-lg, dll., Terpisah dari teks. Ini sebenarnya bukan bug, tetapi fitur hilang.

@fachrizal
Apakah Anda menganggap bahwa orang asing mengikuti repo ini? Sayangnya, Google Terjemahan bukanlah alat yang baik untuk memahami apa yang Anda katakan. Saya menyadari bahwa sebagian besar pengembang dan pengguna Ant-Design adalah orang China, tetapi apakah Anda juga menganggap non-China?
Oleh karena itu, saya mendorong Anda untuk menggunakan bahasa internasional untuk menghormati kita semua.

Orang-orang berhak menggunakan bahasa mereka sendiri dan harus merasa nyaman melakukannya, dan sejauh saya menghargai upaya untuk melibatkan audiens sebanyak mungkin dengan menyediakan terjemahan, tidak ada yang boleh diberi ceramah hanya untuk menggunakan bahasa yang paling nyaman baginya dan bahwa pengelola memahami untuk berkomunikasi. Gagasan bahwa kontributor utama dalam proyek ini tidak boleh menggunakan bahasa asli mereka untuk berkomunikasi karena beberapa bahasa lain lebih unggul adalah sangat tidak masuk akal. Tidak apa-apa untuk meminta terjemahan, tetapi dengan hormat. Merendahkan tanggapan karena menggunakan bahasa China adalah kontraproduktif dan kekanak-kanakan.

Teman-teman, Apakah And Design versi 4.0 memiliki JSS dan bukan _Less_ untuk membuat CSS?

Teman-teman, Apakah And Design versi 4.0 memiliki JSS dan bukan _Less_ untuk membuat CSS?

AFAIK, tidak. Tetapi Anda dapat mencoba menggunakan komponen bergaya (misalnya) selain lebih sedikit.

Terima kasih, @tomgao365 sayang, saya membuat masalah yang Anda rujuk. Saya ingin membuat PR yang bagus untuk menghapus Less sepenuhnya dan menggunakan JSS sebagai gantinya. Mengerjakan versi 3 bukanlah Ide yang Baik, karena banyak proyek dibuat dengan menggunakan versi 3, jadi saya memutuskan untuk bekerja mengimplementasikan JSS pada versi 4.

Juga, saya punya sedikit pertanyaan, @abenhamdine sayang, apa ide Anda tentang menggunakan JSS daripada menggunakan Less?

Juga, saya punya sedikit pertanyaan, @abenhamdine sayang, apa ide Anda tentang menggunakan JSS daripada menggunakan Less?

Manfaat utama menurut saya:

  • gaya dinamis (nyeri dengan sedikit)
  • pelengkapan otomatis (tidak yakin untuk itu, bergantung pada pustaka alat / JSS yang Anda gunakan)
  • warisan gaya

layak untuk dicoba.
Tapi itu bukan peluru perak.

@Abenhamdine yang terhormat, Saya meninggalkan masalah yang mendapat lencana Discussion . Ini # 19181.

Dan saya ingin mulai menerapkan JSS dan menghilangkan Less tetapi versi baru akan datang dan saya khawatir semua usaha saya akan sia-sia.

Senang melihat diskusi tentang mengganti moment.js ke beberapa alternatif seperti Day.js atau Objek Tanggal asli di sini https://github.com/ant-design/ant-design/issues/19738

Apakah akan ada cara yang lebih mudah untuk mengubah tema warna menggunakan create-react-app di versi 4?

Saya setuju dengan @flashtheman bahwa mengganti tema tanpa persyaratan bekerja dengan lebih sedikit variabel akan menyenangkan - yaitu sesuatu seperti ThemeProvider dari emosi: https://emotion.sh/docs/theming

Di era jQuery, pengaturan tema sangat populer dan pengguna suka menggunakannya.
Saya telah menunggu cara mudah untuk mengubah tema di lingkungan produksi selama lebih dari 2 tahun.

Di versi baru komponen ikon, jika ikon ditentukan secara dinamis, bagaimana cara menanganinya di versi baru? Untuk saat ini, saya hanya bisa memikirkan menggunakan string require + variabel. Ternyata hanya atribut type yang perlu diisi dengan variabel. Adakah cara lain untuk mengatasinya?
google translate: Di versi baru komponen ikon, jika ikon ditentukan secara dinamis, lalu cara menghadapinya di versi baru, untuk saat ini hanya dapat memikirkan string variabel + yang dibutuhkan, yang asli hanya perlu mengisi atribut tipe dengan variabel, apa metode pemrosesan lainnya?

Di versi baru komponen ikon, jika ikon ditentukan secara dinamis, bagaimana cara menanganinya di versi baru? Untuk saat ini, saya hanya bisa memikirkan menggunakan string require + variabel. Ternyata hanya atribut type yang perlu diisi dengan variabel. Adakah cara lain untuk mengatasinya?
google translate: Di versi baru komponen ikon, jika ikon ditentukan secara dinamis, lalu cara menghadapinya di versi baru, untuk saat ini hanya dapat memikirkan string variabel + yang dibutuhkan, yang asli hanya perlu mengisi atribut tipe dengan variabel, apa metode pemrosesan lainnya?

Coba https://github.com/smooth-code/loadable-components yang direkomendasikan dalam dokumentasi React

Kapan versi resminya akan dirilis?

4.0 Apakah Tabel mendukung fungsi Pivot?

@ afc163 - Sepertinya polusi gaya global adalah masalah nomor 1 yang diinginkan orang-orang dengan rilis baru. Apakah Anda memiliki seseorang untuk mengerjakan ini? Saya akan senang melakukan pekerjaan dan bantuan ini. Seharusnya tidak sulit, hanya butuh sedikit usaha. Saya juga mengalami masalah ini dengan Desain Semut. Saya ingin menyelesaikannya.

Apakah ada pekerjaan yang sedang dilakukan untuk mengurangi ukuran komponen?
Untuk sekali: mengapa jika saya ingin Button - Saya harus mengimpor seluruh file antd.css ??

Apakah ada pekerjaan yang sedang dilakukan untuk mengurangi ukuran komponen?
Untuk sekali: mengapa jika saya ingin Button - Saya harus mengimpor seluruh file antd.css ??

@ avalanche1 Lihat https://ant.design/docs/react/introduce#Usage

Gunakan antd termodulasi

Bagi saya, komponen unggahan tidak cukup untuk mendukung rendering daftar kustom saat ini.
Selain itu, kemajuan unggahan hanya dalam persentase, dan tidak nyaman untuk diperluas untuk mendukung tampilan kecepatan waktu nyata.

@ ban1988

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

Jika menginginkan tampilan kecepatan, onChange telah mengembalikan persentase file yang telah diunggah. Anda dapat menghitung kecepatan unggah.

@ Z3SA https://caniuse.com/#search = CSS% 20Variables. Ini perlu menghentikan semua dukungan IE, menghentikan dukungan IE11 terlalu radikal, meskipun saya juga mendukung melakukan itu.

Anda masih dapat melakukan ini dengan dukungan fallback. Contoh: color: var(--red, @red); Pencarian / ganti global sederhana untuk semua variabel saat ini akan menyelesaikan masalah ini.

Apakah menjatuhkan LESS untuk mendukung SASS atau solusi gaya lain yang lebih baik sedang dipertimbangkan untuk v4 atau tidak?

@murbanowicz , Hai, terima kasih atas komentar Anda, saya meninggalkan masalah tentang menggunakan JSS alih-alih Less dan di sini, saya menunjukkan kesiapan saya tentang migrasi ini tetapi tidak ada yang menunjukkan tindakan apa pun.

Hai @zombieJ , terima kasih atas kerja bagus Anda pada Ant Design? Apakah ada rencana untuk menyediakan cara out of the box untuk mengubah tema gelap di aplikasi?

Saran tentang komponen formulir:
Saya sangat senang melihat bahwa di versi 4.0 baru, komponen formulir akan lebih bersahabat dengan pengembang. Saya melihat contoh baru, komponen Form.Item di bawah komponen Form tidak perlu lagi menggunakan getFieldDecorator. Ini adalah peningkatan yang sangat bagus, tetapi saya memiliki saran yang lebih radikal: hapus komponen Form.Item, optimalkan lebih lanjut pengalaman penulisan kode, dan buat pengkodean lebih menyegarkan. Fungsi asli dari komponen Form.Item secara langsung ditransfer ke komponen input tertentu (seperti Input, DataPick, dll.).
Ini untuk memperhitungkan bahwa dalam banyak kasus, formulir yang dikembangkan menggunakan komponen masukan bawaan antd, yang memenuhi syarat untuk mewujudkan fungsi komponen Formulir. Item dengan meningkatkan kapabilitas komponen masukan; dan untuk beberapa kasus khusus (seperti diri pengguna Tentukan komponen, komponen input tertentu tidak ingin terikat oleh Formulir), Anda dapat menyediakan komponen kemasan khusus untuk instruksi.
Penelitian tentang antd tidak mendalam, dan hanya mengusulkan saran himbauan dari sudut pandang pengguna biasa, jika ada yang tidak beres silahkan Haihan.

Saran tentang komponen formulir:
Saya sangat senang melihat bahwa di versi 4.0 baru, komponen formulir akan lebih bersahabat dengan pengembang. Saya melihat contoh baru, komponen Form.Item di bawah komponen Form tidak perlu lagi menggunakan getFieldDecorator. Ini adalah peningkatan yang sangat bagus, tetapi saya memiliki saran yang lebih radikal: hapus komponen Form.Item, optimalkan lebih lanjut pengalaman penulisan kode, dan buat pengkodean lebih menyegarkan. Fungsi asli dari komponen Form.Item secara langsung ditransfer ke komponen input tertentu (seperti Input, DataPick, dll.).
Ini untuk memperhitungkan bahwa dalam banyak kasus, formulir yang dikembangkan menggunakan komponen masukan bawaan antd, yang memenuhi syarat untuk mewujudkan fungsi komponen Formulir. Item dengan meningkatkan kapabilitas komponen masukan; dan untuk beberapa kasus khusus (seperti diri pengguna Tentukan komponen, komponen input tertentu tidak ingin terikat oleh Formulir), Anda dapat menyediakan komponen kemasan khusus untuk instruksi.
Penelitian tentang antd tidak mendalam, dan hanya mengusulkan saran himbauan dari sudut pandang pengguna biasa, jika ada yang tidak beres silahkan Haihan.

@shengliangli merasa

Saran tentang komponen formulir:
Saya sangat senang melihat bahwa di versi 4.0 baru, komponen formulir akan lebih bersahabat dengan pengembang. Saya melihat contoh baru, komponen Form.Item di bawah komponen Form tidak perlu lagi menggunakan getFieldDecorator. Ini adalah peningkatan yang sangat bagus, tetapi saya memiliki saran yang lebih radikal: hapus komponen Form.Item, optimalkan lebih lanjut pengalaman penulisan kode, dan buat pengkodean lebih menyegarkan. Fungsi asli dari komponen Form.Item secara langsung ditransfer ke komponen input tertentu (seperti Input, DataPick, dll.).
Ini untuk memperhitungkan bahwa dalam banyak kasus, formulir yang dikembangkan menggunakan komponen masukan bawaan antd, yang memenuhi syarat untuk mewujudkan fungsi komponen Formulir. Item dengan meningkatkan kapabilitas komponen masukan; dan untuk beberapa kasus khusus (seperti diri pengguna Tentukan komponen, komponen input tertentu tidak ingin terikat oleh Formulir), Anda dapat menyediakan komponen kemasan khusus untuk instruksi.
Penelitian tentang antd tidak mendalam, dan hanya mengusulkan saran himbauan dari sudut pandang pengguna biasa, jika ada yang tidak beres silahkan Haihan.

@shengliangli merasa

Saya pikir Form.Item adalah komponen "ekstra" yang ditambahkan oleh antd untuk mewujudkan fungsi pengikatan data dari komponen Formulir. Ada alasan untuk realisasi ini, tetapi bagaimanapun, ada hal tambahan yang ditambahkan. Sama seperti semua orang mengkritik masalah terlalu banyak kode modular di redux, pengembang mungkin tidak menyukai cara penulisan ini. Jika fungsi data binding yang diimplementasikan form.item dapat dipahami sebagai karakteristik komponen input seperti Input, sehingga untuk meningkatkan kapabilitas komponen input, apakah terasa lebih natural?

Saya juga memikirkan masalah kopling. Akar masalahnya mungkin terletak pada bagaimana kita mendefinisikan kemampuan dan karakteristik perilaku komponen input.

Saran tentang komponen formulir:
Saya sangat senang melihat bahwa di versi 4.0 baru, komponen formulir akan lebih bersahabat dengan pengembang. Saya melihat contoh baru, komponen Form.Item di bawah komponen Form tidak perlu lagi menggunakan getFieldDecorator. Ini adalah peningkatan yang sangat bagus, tetapi saya memiliki saran yang lebih radikal: hapus komponen Form.Item, optimalkan lebih lanjut pengalaman penulisan kode, dan buat pengkodean lebih menyegarkan. Fungsi asli dari komponen Form.Item secara langsung ditransfer ke komponen input tertentu (seperti Input, DataPick, dll.).
Ini untuk memperhitungkan bahwa dalam banyak kasus, formulir yang dikembangkan menggunakan komponen masukan bawaan antd, yang memenuhi syarat untuk mewujudkan fungsi komponen Formulir. Item dengan meningkatkan kapabilitas komponen masukan; dan untuk beberapa kasus khusus (seperti diri pengguna Tentukan komponen, komponen input tertentu tidak ingin terikat oleh Formulir), Anda dapat menyediakan komponen kemasan khusus untuk instruksi.
Penelitian tentang antd tidak mendalam, dan hanya mengusulkan saran himbauan dari sudut pandang pengguna biasa, jika ada yang tidak beres silahkan Haihan.

@shengliangli merasa

Saya pikir Form.Item adalah komponen "ekstra" yang ditambahkan oleh antd untuk mewujudkan fungsi pengikatan data dari komponen Formulir. Ada alasan untuk realisasi ini, tetapi bagaimanapun, ada hal tambahan yang ditambahkan. Sama seperti semua orang mengkritik masalah terlalu banyak kode modular di redux, pengembang mungkin tidak menyukai cara penulisan ini. Jika fungsi data binding yang diimplementasikan form.item dapat dipahami sebagai karakteristik komponen input seperti Input, sehingga untuk meningkatkan kapabilitas komponen input, apakah terasa lebih natural?

Saya juga memikirkan masalah kopling. Akar masalahnya mungkin terletak pada bagaimana kita mendefinisikan kemampuan dan karakteristik perilaku komponen input.

Saya tidak terlalu setuju.Saya pikir Form.Item terutama merupakan paket eksternal dari sebuah komponen, seperti atribut seperti label dan kolom, yang sebenarnya tidak cocok untuk sebaris menjadi komponen.

Hai @ Zombie
Tertarik untuk mengetahui kapan versi 4 akan keluar?
Menantikan balasan

Bagaimana cara saya berkontribusi pada desain juga.
Ingin mendengar dari seseorang

Versi beta.0 tersedia, apakah itu berarti Anda dapat mulai menggunakannya?

Saran tentang komponen formulir:
Saya sangat senang melihat bahwa di versi 4.0 baru, komponen formulir akan lebih bersahabat dengan pengembang. Saya melihat contoh baru, komponen Form.Item di bawah komponen Form tidak perlu lagi menggunakan getFieldDecorator. Ini adalah peningkatan yang sangat bagus, tetapi saya memiliki saran yang lebih radikal: hapus komponen Form.Item, optimalkan lebih lanjut pengalaman penulisan kode, dan buat pengkodean lebih menyegarkan. Fungsi asli dari komponen Form.Item secara langsung ditransfer ke komponen input tertentu (seperti Input, DataPick, dll.).
Ini untuk memperhitungkan bahwa dalam banyak kasus, formulir yang dikembangkan menggunakan komponen masukan bawaan antd, yang memenuhi syarat untuk mewujudkan fungsi komponen Formulir. Item dengan meningkatkan kapabilitas komponen masukan; dan untuk beberapa kasus khusus (seperti diri pengguna Tentukan komponen, komponen input tertentu tidak ingin terikat oleh Formulir), Anda dapat menyediakan komponen kemasan khusus untuk instruksi.
Penelitian tentang antd tidak mendalam, dan hanya mengusulkan saran himbauan dari sudut pandang pengguna biasa, jika ada yang tidak beres silahkan Haihan.

Pertama-tama, Anda harus tahu bahwa itu tidak ada hubungannya dengan apakah itu built-in atau tidak.Menggunakan yang disebut komponen built-in dapat dikatakan sebagai kecelakaan
getFieldDecorator adalah jembatan yang menghubungkan komponen formulir dan komponen input. Form.item diteruskan ke dua atribut value dan onChange , dan kemudian komponen yang dibungkus melewati value dan onChange Kedua metode antarmuka ini berinteraksi dengan dunia luar. Dengan kata lain, komponen apapun bisa menjadi parameter getFieldDecorator selama value dan onChange diterapkan.Ini adalah ide tipikal dari program to interface

PS: Saya belum baca source code-nya, semua yang di atas adalah tebakan saya setelah membaca dokumennya

Alasan mengapa Form.Item dapat berinteraksi dengan Component mendasarinya tidak ada hubungannya dengan beberapa mekanisme 'built-in' seperti yang diharapkan seseorang. Itu hanya trik umum di dunia pemrograman yang disebut program to interface

Pada dasarnya, Komponen Form dan Komponen yang mendasarinya menyetujui sesuatu seperti value dan onChange . Mereka berfungsi sebagai antarmuka antara dua dunia untuk berkomunikasi. Ini adalah desain yang bagus untuk tujuan decoupling

@dancerphil Mungkin Anda bisa mengklarifikasi ide lebih eksplisit di dokumentasi resmi

Halo semuanya, v4 beta dirilis. API sudah stabil sekarang yang berarti tidak ada perubahan yang mengganggu pada API kecuali terjadi masalah kritis. Selama versi beta, desainer akan membantu untuk melanjutkan penyesuaian desain visual UI dan kami akan fokus pada perbaikan bug. Silakan mencoba dan bantu kami untuk bug api atau umpan balik.

Terima kasih untuk semua orang yang berpartisipasi dalam pengkodean & mencoba. Bantuan Anda sangat berarti :)


Halo semuanya, versi beta telah dirilis. Jika tidak ada masalah desain utama dengan API, tidak ada perubahan lebih lanjut yang akan dilakukan. Dalam versi beta, desainer akan membantu menyesuaikan gaya UI v4, dan kami akan fokus pada perbaikan bug. Selamat datang untuk membantu kami menemukan bug atau memiliki umpan balik lainnya.

Terima kasih telah berpartisipasi dalam pengembangan dan uji coba. Bantuan Anda sangat berarti :)


ref: http://new-issue.ant.design/

Bagaimana cara saya berkontribusi pada desain juga.
Ingin mendengar dari seseorang

@ ekeminimarkk001 mungkin merujuk: https://ant.design/docs/react/contributing

@zombieJ Apakah semua perubahan yang tercantum dalam masalah ini telah diterapkan di versi beta?

Saran tentang komponen formulir:
Saya sangat senang melihat bahwa di versi 4.0 baru, komponen formulir akan lebih bersahabat dengan pengembang. Saya melihat contoh baru, komponen Form.Item di bawah komponen Form tidak perlu lagi menggunakan getFieldDecorator. Ini adalah peningkatan yang sangat bagus, tetapi saya memiliki saran yang lebih radikal: hapus komponen Form.Item, optimalkan lebih lanjut pengalaman penulisan kode, dan buat pengkodean lebih menyegarkan. Fungsi asli dari komponen Form.Item secara langsung ditransfer ke komponen input tertentu (seperti Input, DataPick, dll.).
Ini untuk memperhitungkan bahwa dalam banyak kasus, formulir yang dikembangkan menggunakan komponen masukan bawaan antd, yang memenuhi syarat untuk mewujudkan fungsi komponen Formulir. Item dengan meningkatkan kapabilitas komponen masukan; dan untuk beberapa kasus khusus (seperti diri pengguna Tentukan komponen, komponen input tertentu tidak ingin terikat oleh Formulir), Anda dapat menyediakan komponen kemasan khusus untuk instruksi.
Penelitian tentang antd tidak mendalam, dan hanya mengusulkan saran himbauan dari sudut pandang pengguna biasa, jika ada yang tidak beres silahkan Haihan.

Pertama-tama, Anda harus tahu bahwa itu tidak ada hubungannya dengan apakah itu built-in atau tidak.Menggunakan yang disebut komponen built-in dapat dikatakan sebagai kecelakaan
getFieldDecorator adalah jembatan yang menghubungkan komponen formulir dan komponen input. Form.item diteruskan ke dua atribut value dan onChange , dan kemudian komponen yang dibungkus melewati value dan onChange Kedua metode antarmuka ini berinteraksi dengan dunia luar. Dengan kata lain, komponen apapun bisa menjadi parameter getFieldDecorator selama value dan onChange diterapkan.Ini adalah ide tipikal dari program to interface

PS: Saya belum baca source code-nya, semua yang di atas adalah tebakan saya setelah membaca dokumennya

Setelah membaca balasan Anda, saya harus mengatakan bahwa saran saya untuk komponen formulir antd tidak terlalu matang, tetapi di sisi lain, saran ini sepenuhnya memikirkan masalah dari sudut pandang pengguna biasa. Untuk komponen dengan intensitas penggunaan yang tinggi, bagaimana bisa lebih nyaman untuk dikembangkan dan digunakan, menulis lebih sedikit kode, dan menggunakan ekspresi yang lebih jelas dan alami, adalah harapan saya yang kuat dari antd.

Dari sudut pandang pengguna, antd sudah sangat bagus, sebagian besar komponen dapat digunakan segera setelah digunakan, lupakan saat sudah habis, dan gunakan saat ingin menggunakannya lagi. Alasan untuk mencapai efek ini tidak terlepas dari desain API yang baik dan pengemasan komponen, namun masih ada skenario penggunaan untuk beberapa komponen (seperti dari, tabel), dan masih ada ruang untuk perbaikan yang lebih baik.

Antd hanyalah sebuah komponen alat dalam proyek. Yang terbaik adalah tidak mengekspos mekanisme implementasinya sendiri, atau dengan cerdik menyembunyikan dan mengasimilasi mekanisme implementasi di API eksternal. Pengguna hanya ingin menggunakan komponen ini, ingin menggunakannya dalam bentuk yang paling nyaman dan alami, dan tidak ingin menjadi ahli dalam komponen alat.

Kembali ke komponen formulir, di bawah api 3.x saat ini, saya sebenarnya lebih ingin menggunakan uform berbasis Ali Dibandingkan dengan formulir antd, uform perlu menulis lebih sedikit kode dan lebih produktif. Tentu saja, uform lebih terasa seperti cara penulisan deklaratif, yang sangat berbeda dengan bentuk antd, dan mungkin tidak memiliki banyak nilai untuk referensi.

Sebagai pihak antd, agak memalukan untuk menanyakan begitu banyak persyaratan, tetapi karena cinta saya harap lebih baik, saya harap tim proyek mengerti, dan saya berharap untuk lebih mengoptimalkan pengembangan dan pengalaman penggunaan komponen di bawah versi yang sesuai .

Sangat aneh. Saya tidak menggunakan Icon sama sekali, tapi saya mengemas semua icon-svg ke dalamnya.
webpack-bundle-analyzer.png
Nomor versi: 4.0.0-beta.0. Babel-plugin-import dan tree-shaking digunakan, tetapi tidak berguna.

Sangat aneh. Saya tidak menggunakan Icon sama sekali, tapi saya mengemas semua icon-svg ke dalamnya.
webpack-bundle-analyzer.png
Nomor versi: 4.0.0-beta.0. Babel-plugin-import dan tree-shaking digunakan, tetapi tidak berguna.

Gunakan konfigurasi ini

{
                    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',
                                    ],
                                ],
                            },
                        },
                    ],
                },

Sangat aneh. Saya tidak menggunakan Icon sama sekali, tapi saya mengemas semua icon-svg ke dalamnya.
webpack-bundle-analyzer.png
Nomor versi: 4.0.0-beta.0. Babel-plugin-import dan tree-shaking digunakan, tetapi tidak berguna.

Gunakan konfigurasi ini

{
                    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',
                                    ],
                                ],
                            },
                        },
                    ],
                },

Terima kasih atas balasan Anda, tetapi saya tidak bekerja sesuai konfigurasi Anda.

Versi: 4.0.0-beta.0
Masalah: Saat komponen Modal terlihat dialihkan, halaman akan bergulir dan mereproduksi alamat:

@xiaoxintang Sudah diperbaiki di cabang master, menunggu penggabungan.

@ afc163 Bagaimana cara menginstal antd4.0 beta

https://next.ant.design/ menutup telepon

@ afc163 Bagaimana cara menginstal antd4.0 beta

npm install antd@next
ATAU
yarn add antd@next

Tampaknya situs pratinjau rusak. Saya hanya mendapatkan kesalahan Halaman Tidak Ditemukan .

Saran tentang komponen formulir:
Saya sangat senang melihat bahwa di versi 4.0 baru, komponen formulir akan lebih bersahabat dengan pengembang. Saya melihat contoh baru, komponen Form.Item di bawah komponen Form tidak perlu lagi menggunakan getFieldDecorator. Ini adalah peningkatan yang sangat bagus, tetapi saya memiliki saran yang lebih radikal: hapus komponen Form.Item, optimalkan lebih lanjut pengalaman penulisan kode, dan buat pengkodean lebih menyegarkan. Fungsi asli dari komponen Form.Item secara langsung ditransfer ke komponen input tertentu (seperti Input, DataPick, dll.).
Ini untuk memperhitungkan bahwa dalam banyak kasus, formulir yang dikembangkan menggunakan komponen masukan bawaan antd, yang memenuhi syarat untuk mewujudkan fungsi komponen Formulir. Item dengan meningkatkan kapabilitas komponen masukan; dan untuk beberapa kasus khusus (seperti diri pengguna Tentukan komponen, komponen input tertentu tidak ingin terikat oleh Formulir), Anda dapat menyediakan komponen kemasan khusus untuk instruksi.
Penelitian tentang antd tidak mendalam, dan hanya mengusulkan saran himbauan dari sudut pandang pengguna biasa, jika ada yang tidak beres silahkan Haihan.

Anda dapat mencoba ini: https://github.com/aweiu/ant-modifier

Apakah ada optimasi untuk polusi gaya global?

Apakah ada optimasi untuk polusi gaya global?

Antd sepertinya punya awalan, itu bukan polusi.Kode css proyek Anda sendiri dapat mencoba menggunakan modul-css untuk memecahkan masalah polusi global

Apakah ada optimasi untuk polusi gaya global?

Antd sepertinya punya awalan, itu bukan polusi.Kode css proyek Anda sendiri dapat mencoba menggunakan modul-css untuk memecahkan masalah polusi global

Yah, saya tahu awalan ini Maksud saya polusi bagian reset css global, yang merupakan masalah polusi yang disebabkan oleh pengenalan reset antd dan css di proyek lama.

Apakah ada optimasi untuk polusi gaya global?

Antd sepertinya punya awalan, itu bukan polusi.Kode css proyek Anda sendiri dapat mencoba menggunakan modul-css untuk memecahkan masalah polusi global

Untuk detailnya, lihat diskusi masalah di tautan situs web resmi: https://ant.design/docs/react/faq-cn#antd -% E8% A6% 86% E7% 9B% 96% E4% BA% 86% E6% 88 % 91% E7% 9A% 84% E5% 85% A8% E5% B1% 80% E6% A0% B7% E5% BC% 8F% EF% BC% 81

Apakah ada rencana untuk memigrasi layout Antd Pro 4.0 dari Antd Pro 4.0?
Saya mengalami kesalahan SiderMenu.js Icon.createFromIconfontCN di pro-layout saat memigrasi proyek sendiri. Karena ketergantungan di pro-layout masih versi v3, saya tidak tahu cara mengubah ketergantungan. Seseorang yang tahu akan mengajari saya

Apakah ada rencana untuk memigrasi layout Antd Pro 4.0 dari Antd Pro 4.0?
Saya mengalami kesalahan SiderMenu.js Icon.createFromIconfontCN di pro-layout saat memigrasi proyek sendiri. Karena ketergantungan di pro-layout masih versi v3, saya tidak tahu cara mengubah ketergantungan. Seseorang yang tahu akan mengajari saya

Karena ikon dipisahkan pada 4.0, impor perlu dimodifikasi. Anda dapat mengambil next.ant.design untuk melihat dokumen api ikon saat ini

Terima kasih atas kontribusi Anda pada versi v4. Tutup sejak 4.0.0-rc.0 versi dirilis: ref # 20661

Apakah StrictMode sebuah tujuan? Konteks lama perlu dimigrasikan https://github.com/ant-design/ant-design/issues/9870

Bisakah kita menyimpan antd3 dan antd4 di repo? Tidak dapat berubah di mana-mana karena repo terlalu besar dan hampir akan menulis ulang basis kode lengkap.
Juga jika ya, dapatkah kita menyimpan CSS antd3 di CSS global dan antd4 hanya untuk beberapa folder dan itu anak-anak

Apakah halaman ini membantu?
0 / 5 - 0 peringkat