Bina nama kelas secara dinamik dalam TailwindCss
P粉147747637
P粉147747637 2023-08-24 10:11:17
0
2
435

Saya sedang membina perpustakaan komponen menggunakan TailwindCss untuk projek saya yang seterusnya, dan saya baru sahaja menghadapi masalah kecil dengan komponen Button.

Saya lulus prop seperti 'primary' atau 'secondary' yang berfungsi sama seperti yang saya lakukan dalam tailwind.config. js< ;/code> dan kemudian saya mahu menetapkannya kepada komponen butang menggunakan Template Lites ;

 {anak-anak} 

Nama kelas dipaparkan dengan baik dalam penyemak imbas, ia menunjukkan bg-primary-500 dalam DOM, tetapi tidak dalam tab Gaya Gunaan.

Konfigurasi tema adalah seperti berikut:

tema: { lanjutkan: { warna: { utama: { 500: '#B76B3F', }, menengah: { 500: '#344055', }, }, }, },

Tetapi ia tidak menggunakan sebarang gaya. Jika saya hanya menambah bg-primary-500 ia berfungsi dengan baik.

Sejujurnya, saya hanya tertanya-tanya sama ada ini kerana pengkompil JIT tidak mengambil nama kelas dinamik atau jika saya melakukan sesuatu yang salah (atau jika ini bukan cara untuk menggunakan tailWind).

Sebarang bantuan dialu-alukan, terima kasih terlebih dahulu!

P粉147747637
P粉147747637

membalas semua (2)
P粉034571623

Tidak disyorkan untuk menulis kelas CSS Tailwind dengan cara ini. Walaupun modJIT tidak disokong, untuk memetik dokumentasi Tailwind CSS: "Tailwind tidak termasuk apa-apa jenis masa jalan klien, jadi nama kelas perlu diekstrak secara statik pada masa binaan dan tidak boleh dipercayai dalam klien "

    P粉530519234

    Jadi selepas mengetahui bahawa cara kerja ini tidak digunakan dan JIT tidak menyokongnya (terima kasih kepada pengulas yang murah hati). Saya telah menukar pendekatan kepada pendekatan yang lebih berasaskan "konfigurasi".

    Pada asasnya, saya mentakrifkan const dengan konfigurasi asas prop yang berbeza dan menerapkannya pada komponen. Ini memerlukan lebih banyak penyelenggaraan, tetapi ia menyelesaikan kerja.

    Ini ialah contoh konfigurasi. (tiada menaip diperlukan buat masa ini) dan beberapa pemfaktoran semula yang lebih baik, tetapi anda akan mendapat idea itu.

    const buttonConfig = { // Colors primary: { bgColor: 'bg-primary-500', color: 'text-white', outline: 'border-primary-500 text-primary-500 bg-opacity-0 hover:bg-opacity-10', }, secondary: { bgColor: 'bg-secondary-500', color: 'text-white', outline: 'border-secondary-500 text-secondary-500 bg-opacity-0 hover:bg-opacity-10', }, // Sizes small: 'px-3 py-2', medium: 'px-4 py-2', large: 'px-5 py-2', };

    Kemudian saya menerapkan gaya seperti ini:

     {children} 
      Muat turun terkini
      Lagi>
      kesan web
      Kod sumber laman web
      Bahan laman web
      Templat hujung hadapan
      Tentang kita Penafian Sitemap
      Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!