Saya baru (ish) untuk seluruh aplikasi javascript full stack, dan benar-benar baru di Angular, jadi saya berharap seseorang dapat memberikan catatan langsung untuk saya di sini.
Mengapa saya perlu menggunakan kerangka kerangka kerja seperti Jade atau Handlebars saat menulis aplikasi sisi klien menggunakan AngularJS.
Saya harus mengatakan bahwa saya tidak pernah menggunakan kerangka kerja template ini juga. Jadi saya tidak terlalu paham dengan kelebihannya. Tetapi ketika saya melihat Handlebars misalnya, ia melakukan banyak hal yang sama seperti yang saya lakukan di Angular, seperti looping, dll.
Sejauh yang saya tahu, akan sangat masuk akal untuk membuat template di Angular menggunakan HTML yang tepat dan kemudian melakukan semua template sisi klien, dan menggabungkan ini dengan pendekatan API pertama menggunakan node dan mongo misalnya.
Alasan kebingungan ini adalah bahwa banyak contoh yang saya temukan di GitHub menggunakan Jade, dan tampaknya berlawanan dengan intuisi bagi saya.
Tolong jelaskan saya, dan luruskan saya. Saya ingin mempelajari beberapa praktik terbaik dari orang yang tahu lebih banyak daripada saya.
Terima kasih
Saya menggunakan Jade untuk menghasilkan template yang dikonsumsi oleh AngularJS karena saya benci menulis HTML biasa. Itu terlihat seperti:
… Yang menurut saya jauh lebih bersih daripada HTML biasa.
sumber
ng-inlude
, mungkin digunakan bersamang-src
, berbeda jauh dari mixin dan dan termasuk Jades?Sejujurnya saya tidak mengerti mengapa orang peduli tentang perbedaan antara ini:
dan ini:
Kecuali bahwa saya menemukan satu yang sedikit lebih bisa dibaca manusia. Sedikit . Saya tidak mengerti mengapa orang-orang begitu bersemangat tentang topik tersebut. Semuanya bikeshedding. Perbedaannya dapat diabaikan dan setiap programmer yang kompeten dapat dengan mudah menerjemahkan satu sama lain setelah lima detik di Google. Gunakan apa yang Anda inginkan dan biarkan orang lain bertengkar karena tidak ada apa-apa. Pilih pertempuran Anda dan terlibat dalam debat tentang hal-hal yang sebenarnya penting, seperti reaktor atom;)
sumber
if
ke persamaan, semuanya tiba-tiba berubah. Lihat di atas tentang "pengguna premium".if
s di markup giok Anda, maka Anda sudah memiliki kebutuhan untuk beberapa jenis mesin templating dan Anda harus mengubahnya menjadiif
sintaks apa pun yang digunakan oleh mesin itu. Saya tidak begitu mengerti kritik Anda.Jadi TL; DR, di server, Anda dapat menggunakan bahasa apa pun [giok, haml, ...] untuk menghasilkan hanya struktur html untuk aplikasi Anda, itu tidak ada hubungannya dengan angularJS karena akan merender dan bekerja dengan HTML di runtime di frontend.
Anda tidak perlu menggunakan Jade di server, dan saya sarankan untuk tidak menggunakan karena akan membingungkan developer baru. Dalam proyek yang Anda lihat, mereka menggunakan Jade hanya karena lebih bersih dan mereka sudah terbiasa, dan jika digunakan dengan angularJS, tugasnya hanyalah menghasilkan html biasa tanpa logika apa pun.
sumber
Jawaban yang diterima agak sepihak dan mengabaikan fakta bahwa setiap pengaturan pra-kompiler untuk HTML memiliki kegunaan yang bagus untuk SETIAP jenis proyek HTML: Komposisi dan fleksibilitas markup yang dihasilkan.
Bekerja sendiri di aplikasi sudut? Cobalah Jade.
Jade meningkatkan kemampuan Anda untuk memodularisasi HTML, mengurangi jumlah waktu yang Anda habiskan untuk men-debug HTML dan juga mendorong pembuatan inventaris markup.
Selama waktu desain, mungkin ada banyak sekali iterasi pada bagian HTML. Jika keluaran HTML didasarkan pada sekumpulan file giok, mudah bagi tim untuk bertindak fleksibel dalam mengubah persyaratan. Selain itu, mengubah markup melalui pembuatan ulang jade secara signifikan lebih kuat daripada menulis ulang HTML murni.
Karena itu, saya menyadari keengganan umum terhadap pencampuran sudut dengan giok dalam tahap produksi atau pengembangan. Memperkenalkan seperangkat pengetahuan sintaksis lain yang diperlukan adalah ide buruk bagi sebagian besar tim dan penggunaan batu giok mungkin menyembunyikan manajemen proyek yang tidak efisien dengan mengabstraksi beberapa pekerjaan yang akan dilarang oleh prinsip KERING (misalnya malas pada persiapan markup)
sumber
Saya telah membaca semua jawaban di atas dan sedikit terkejut tidak ada yang menyebutkan satu aspek yang membuat penggunaan giok daripada membuat template AngularJS menjadi hal yang sangat berguna.
Seperti yang telah diceritakan, dalam produksi, perbedaan skenario realistis antara mengetik html mentah dan giok sebenarnya penting, tetapi hal yang lebih penting yang tidak boleh kita lupakan adalah bahwa terkadang kita perlu mengubah dan menginisialisasi ulang template angularjs secara dinamis .
Sederhananya, terkadang kita perlu mengubah html melalui innerHTML dan kemudian memaksa AngularJS untuk mengkompilasi ulang konten. Dan inilah jenis tugas yang tepat ketika menghasilkan tampilan seperti itu melalui giok dapat bermanfaat.
Juga, AngularJS bekerja dengan baik dengan model, yang strukturnya menurut definisi terkenal. Sebenarnya, kami sebenarnya tidak mengetahui struktur pastinya (bayangkan, katakanlah, perender JSON). AngularJS akan sangat kikuk di sini (bahkan jika sedang membangun aplikasi sudut), sementara giok akan melakukan pekerjaan itu.
sumber
Anda dapat menyertakan template sudut melalui Jade.
Untuk template caching, saya menganggap ini jauh lebih rapuh daripada menyertakan template yang lolos dalam file javascript.
Lihat: https://docs.angularjs.org/api/ng/service/$templateCache
sumber
Jade jelas lebih mirip dengan html daripada yang dikatakan Haml. Jadi pengalih konteks sebenarnya sangat minim. Namun itu tidak sepenuhnya tidak ada. Ini mungkin tidak masalah sama sekali bagi pengembang. Tetapi ketika desainer Anda datang dan menanyakan cara agar tag bersarang berfungsi dengan baik, Anda memecahkan masalah yang tidak perlu yang Anda buat sejak awal.
HTML masih dapat ditulis dengan sangat jelas dan sebagian dapat digunakan untuk membuatnya lebih mudah dipahami. 500 baris apa pun sulit dibaca - baik itu Jade atau HTML.
Ini adalah template Jade
Dan HTML yang setara
Ketika ditulis dengan jelas, saya tidak melihat HTML menjadi sangat dirugikan sehingga menjamin peralihan. Benar saja, tanda kurung sudut merusak pemandangan. Tapi saya lebih suka memilikinya, daripada harus berurusan dengan keraguan desainer apakah tipuan yang saya perkenalkan melanggar html. (Mungkin tidak. Tapi membuktikan itu bukan upaya yang layak)
sumber
Pertama-tama, Anda selalu membutuhkan semacam template sisi server.
Pembuatan template sisi klien murni memiliki kerugian besar dalam waktu pemuatan, sehingga sering kali dikurangi dengan merender beberapa elemen statis di server. Dengan cara ini ketika pengguna memuat sebagian halaman, dia sudah melihat beberapa elemen di halaman.
Dan yah, template berguna dalam kasus ini, meskipun terkadang orang menggunakan generator html statis seperti Jekyll.
Ada alasan lain untuk menggunakan Jade yang tidak disebutkan di sini sebelumnya.
Spasi Putih.
Jika Anda menulis HTML yang dapat dipelihara manusia dengan lekukan dan jeda baris, setiap pemutusan baris akan menghasilkan simpul teks spasi. Ini dapat cukup banyak mengacaukan pemformatan elemen inline dalam beberapa kasus, dan membuat kode javascript lebih aneh.
Anda dapat membaca lebih detail di sini: https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Whitespace_in_the_DOM
Jika Anda menulis kode Jade, itu dikompilasi menjadi HTML satu baris yang tidak memiliki masalah ini.
sumber
Saat bekerja dalam tim, front-end cenderung lebih suka mendesain halaman mereka sebagai html statis. Menerjemahkan html statis itu ke dalam template dinamis adalah sumber kesalahan, dan menambahkan giok akan menambahkan langkah terjemahan tersebut.
Seperti banyak orang lainnya, saya menyukai kesederhanaan!
sumber