Pembuat Vue.js Evan You Timbang dalam Diskusi Kerangka JavaScript WordPress
Diterbitkan: 2017-06-06
Minggu lalu kontributor inti WordPress mempersempit pertimbangan mereka untuk kerangka kerja JavaScript baru ke React dan Vue. Karena tim inti memiliki lebih banyak pengetahuan kolektif tentang bekerja dengan React, mereka telah menjangkau pengembang dengan pengalaman berbeda dalam menggunakan kerangka kerja lain dalam konteks WordPress.
Salah satu perhatian utama kontributor tentang Vue adalah umur panjang proyek. Saya bertanya kepada pembuat Vue Evan You apakah dia dapat mempertimbangkan topik tersebut untuk memberikan pemahaman yang lebih baik kepada kontributor WordPress tentang proyek tersebut, khususnya mengenai upayanya untuk mengembangkan pengelola tambahan untuk membantu berbagi beban pemeliharaan.
“Saya pikir penting untuk melihat rekam jejak – Vue telah ada selama hampir 4 tahun, dan semua pekerjaan telah dilakukan di depan umum di GitHub sehingga siapa pun dapat pergi dan memeriksa riwayat pemeliharaan,” kata You. “Meskipun sebagian besar telah dikembangkan oleh saya, pemeliharaan saat ini lebih banyak didorong oleh komunitas. Kami memiliki anggota tim inti aktif yang melakukan triase sebagian besar masalah dan persentase yang lebih besar dan lebih besar dari masalah yang diperbaiki oleh PR komunitas. Jadi – ya, saya telah bekerja untuk mengolah pemelihara tambahan dan akan terus melakukannya.”
Saat ini Anda menerima $10K/bulan dari donasi berulang Patreon yang mendanai upaya penuh waktunya bekerja di Vue. Sebelum ini ia juga bekerja di Google dan Meteor. Selama bekerja di Google, beberapa proyek yang Anda kerjakan menggunakan Angular, yang menurutnya terlalu berat untuk kasus penggunaannya saat itu. Dia membangun Vue.js untuk menjadi implementasi yang lebih ringan dari konsep yang dia sukai tentang Angular.
Anda juga baru-baru ini mengatakan bahwa dia telah belajar cukup banyak dari komunitas React, yang telah memengaruhi beberapa keputusan teknisnya di Vue 2.
Saya belajar banyak dari komunitas React – baik dalam kode maupun orang. Saya harap semua orang bisa seperti @dan_abramov. Perdamaian.
— Evan You (@youyuxi) 29 Mei 2017
“Pertama, Vue 2 menggunakan model rendering berbasis DOM Virtual yang sama di bawahnya, yang pertama kali dipelopori oleh React,” kata You. “Memperkenalkan DOM Virtual memungkinkan Vue untuk mengekspos kekuatan komposisi vdom sambil mempertahankan kemudahan untuk didekati.
“Komunitas React juga sangat aktif ketika ada domain masalah baru yang sedang dieksplorasi – misalnya manajemen negara bagian dan manajemen CSS. Ada banyak solusi yang bersaing dan banyak inspirasi ketika saya mengimplementasikan solusi resmi untuk Vue.”
Evan You Mengatasi Kesalahpahaman Kontributor Inti WordPress tentang Vue.js
Anda mengatakan dia telah mengikuti diskusi kontributor WordPress tentang React vs Vue tetapi tidak akan memberikan pendapat tentang pilihan mana yang lebih baik untuk proyek tersebut.
“Jawaban saya jelas akan bias, dan sejujurnya saya tidak pada posisi tim inti WP jadi saya tidak memiliki perspektif yang cukup untuk membuat pilihan,” kata You. “Namun, saya dapat memberikan umpan balik tentang beberapa masalah yang sedang dibahas dengan harapan dapat membantu mereka membuat keputusan yang lebih tepat.”
Anda meninggalkan komentar pada catatan rapat Javascript terbaru dengan klarifikasi tentang beberapa kesalahpahaman tentang Vue.js. Anda membahas poin tentang "merangkul JavaScript bahasa," karena beberapa kontributor berpikir bahasa templating Vue mengaburkan JavaScript yang mendasarinya.
“Saya pikir 'merangkul JavaScript bahasa' adalah primitif lain dari React yang tidak kita lihat di Vue,” kata Andrew Duthie selama pertemuan terakhir.

Balasan Anda membandingkan penggunaan templat oleh Vue sebagai "gula sintaksis untuk representasi tampilan di atas HTML" dengan apa yang dia yakini sebagai penggunaan serupa dalam kasus JSX sebagai representasi tampilan di atas JavaScript:
Peningkatan kekayaan UI TIDAK mengharuskan meletakkan semuanya di JavaScript. Di sisi lain, hanya karena Vue menggunakan template secara default tidak berarti itu memungkinkan orang untuk bertahan tanpa mempelajari JavaScript dengan benar.
Template Vue dikompilasi ke dalam fungsi render JavaScript di bawah tenda dan mereka sebenarnya lebih dekat dengan JavaScript daripada template string tradisional. Ini hanya lapisan gula sintaks di atas representasi DOM Virtual yang mendasarinya. Pikirkan JSX sebagai gula sintaks untuk representasi tampilan di atas JS; Template Vue adalah gula sintaks untuk representasi tampilan di atas HTML.
JSX/Raw JS memang memberikan lebih banyak fleksibilitas ketika Anda perlu menerapkan manipulasi langsung dari node DOM Virtual, inilah mengapa Vue juga mendukung fungsi render. Tapi ini tidak menempatkan dua paradigma yang berlawanan di bawah tenda yang sama - itu hanya memungkinkan pengguna untuk melewati lapisan gula sintaks untuk kontrol lebih.
Anda mengatakan bahwa ide di balik pembuatan template di atas fungsi render adalah untuk memberikan “kemampuan pendekatan yang lebih baik,” kekhawatiran yang dimiliki oleh banyak pendukung WordPress lainnya yang mengadopsi Vue.
“Pengguna yang lebih nyaman dengan HTML dan memiliki kasus penggunaan yang lebih sederhana dapat menggunakan template, sementara pengguna yang sudah terbiasa dengan fungsi JSX/render dapat memanfaatkan kekuatan penuh JS,” kata You. “Ini akan sangat cocok untuk penggunaan inti WP: pengguna komunitas yang peduli dengan kemudahan untuk didekati memiliki waktu yang lebih mudah untuk memulai, sementara tim inti memiliki akses ke fungsi JSX/render untuk kasus penggunaan lanjutan.”
Anda juga membahas masalah umur panjang dengan menawarkan lebih banyak informasi tentang proses pengembangan Vue. Dia mengkonfirmasi bahwa basis kode saat ini sebagian besar dikembangkan olehnya sendiri, tetapi pemeliharaan tersebar di seluruh tim inti dengan anggota di seluruh dunia.
“Kontributor lain memiliki jumlah komit yang lebih rendah karena kontribusi mereka semua diserahkan dalam bentuk PR dan kami menggunakan fitur 'Squash and commit' di GitHub sehingga setiap PR hanya menghasilkan satu komit untuk kontributor,” kata You. “Kami telah menggabungkan hampir 500 PR di repo inti saja, dan banyak lagi di seluruh organisasi. Repo lain di bawah organisasi vuejs, misalnya vuex, vue-router, vuejs.org juga sebagian besar dikelola oleh anggota tim yang berdedikasi.”
Anda juga menawarkan klarifikasi tentang pertanyaan tentang stabilitas dan kompatibilitas di masa mendatang, karena kontributor WordPress menyampaikan kekhawatiran tentang melanggar perubahan dalam bahasa templating di Vue 2.0.
“Ini meminta beberapa klarifikasi: Vue versioning secara ketat mengikuti semver,” kata You. “Satu-satunya saat terjadi pemutusan perubahan API pasca 1.0 adalah benjolan 2.0. Sintaks template adalah bagian dari API sehingga tidak akan [break], dan di antara perbedaan versi utama, kami berkomitmen pada kompatibilitas mundur 100% API. Kami sangat memperhatikan stabilitas, begitu juga komunitas dan pengguna dalam produksi kami, termasuk GitLab, Vice, dan beberapa perusahaan internet terbesar di China.”
Karena banyak kontributor inti WordPress telah berkembang di atas React selama bertahun-tahun, masukan Anda menawarkan tampilan yang lebih rinci dan mendalam tentang Vue yang telah diminta oleh kontributor selama berbagai putaran umpan balik. Diskusi akan berlanjut selama beberapa minggu ke depan dan kontributor berencana untuk memasukkan topik pada pertemuan kontributor WordCamp Eropa.
