Vue 2.6 chiqarilgan

Kecha biz hozirgina Vuversiya bayramini nishonladik - bugun biz Vue 2.6 "Makross" ning chiqarilishini e'lon qilishdan xursandmiz!

O'tgan yili biz yangi CLI va 3.0 prototiplarini ishlab chiqish uchun ko'p vaqt sarfladik. Natijada, Vue core 2.x bir muncha vaqt ichida katta yangilanishlarni olmadi. Bu vaqt haqida! Ushbu nashr bir qator muhim yaxshilanishlarni, ichki o'zgarishlarni va ushbu lavozimda ta'kidlangan yangi xususiyatlarni o'zida mujassam etgan. To'liq tafsilotlar uchun GitHub-dagi to'liq nashrni ham tekshirib ko'ring.

Uyalar: Yangi sintaksis, ish faoliyatini yaxshilash va 3.0 bilan moslashtirish

Slot Vue-da moslashuvchan tarkibiy qismlarni yaratishga imkon beradigan muhim mexanizmdir. 3.0 prototipini tayyorlash jarayonida biz uni yaxshilashning bir qancha usullarini topdik. Ulardan ba'zilari o'zgarishlarni buzmasdan kiritilishi mumkin, bu bizga ularni 2x kichik versiyada etkazib berishga imkon beradi. Keskin o'zgarishlarni talab qiladiganlar uchun, biz 2.x-da kelajakdagi ko'chishni osonlashtiradigan progressiv alternativalarni taqdim etishga harakat qilmoqdamiz.

Yangi sintaksis

Birinchi qadam - kengaytirilgan uyalarning yangi sintaksisi. Biz turli xil dizaynlarni taklif qildik, muhokama qildik va tajriba o'tkazdik (1, 2, 3) va oxirida ushbu RFCda keltirilgan yangi v-uyali sintaksisga tushdik. Belgilangan uyalar yordamida qisqacha misol:

Yangi sintaksis normal va qisqargan uyalarning ishlatilishini bitta direktivada birlashtiradi va aniqroq va o'qilishi mumkin bo'lgan nomlangan uyalardan foydalanishni ta'minlaydi. Bundan tashqari, mavjud sintaksisga to'liq mos keladi, bu bizga bugungi kunda 2.6-da etkazib berishga imkon beradi.

Agar siz mavjud uyadagi sintaksis bilan allaqachon tanish bo'lsangiz, yangi sintaksis asosini yaxshiroq tushunish uchun RFC orqali o'qib chiqishingizni maslahat beramiz. Agar siz hali ham uyalar bilan tanish bo'lmasangiz, uning o'rniga yangilangan uyalar hujjatiga o'tishingiz tavsiya etiladi.

Ishlashni yaxshilash

Biz 3.0 da ko'rishni istagan uyalar uchun yana bir yaxshilanish - bu slotslarning ishlash afzalligi tufayli normal va chegaralangan uyalarni amalga oshirish nuqtai nazaridan birlashtirish. Oddiy uyalar ota-onaning chiqish tsikli davomida namoyish etiladi. Agar qaramlik o'zgarganda, u ota-ona va bola tarkibiy qismlarini qayta ko'rsatishga olib keladi. Boshqa tomondan, bo'shliqlar ichki funktsiyalarga tuzilgan va bolalar tarkibiy qismlarini ishlab chiqarish jarayonida chaqiriladi. Bu chegaralangan uyaga bog'liq bo'lgan har qanday ma'lumotlarga bog'liqlik bolalar komponenti tomonidan to'planadi va aniqroq yangilanishga olib keladi. 2.6-da, biz ota-onalar ko'lamiga bog'liqlik mutatsiyalari faqat ota-onaga ta'sir ko'rsatishini ta'minlaydigan optimallashtirishni joriy qildik va bola komponentlarini faqat agar u bo'sh joylardan foydalansa, yangilashga majbur qilmaydi.

Qo'shimcha:

  • Yangi v-uyali sintaksisdan foydalanadigan barcha uyalar kengaytirilgan uyalarga tuzilgan. Bu yangi sintaksisdan foydalanadigan barcha uyalar avtomatik ravishda ishlash yaxshilanishini anglatadi;
  • Endi hamma normal uyalar ham ochiladi. $ ScopedSlots funktsiyalari sifatida. Bu shablonlar o'rniga render funktsiyalaridan foydalanuvchi foydalanuvchilar bundan har doim foydalanishi mumkinligini anglatadi. $ ScopedSlots, qaysi turdagi uyalar o'tishidan xavotirlanmasdan.

3.0-da, bundan keyin scoped bilan sloplanmagan uyalar o'rtasida farq bo'lmaydi - barcha uyalar bir xil sintaksisdan foydalanadi, bir xil formatga yig'iladi va bir xil maqbul ishlashga ega bo'ladi.

Async bilan bog'liq xatolar

Vue xatolarni boshqarish mexanizmi (tarkibiy xatoCaptured kanca va global errorHandler hook) endi v-on ishlov beruvchilar ichidagi xatolarni ushlaydi. Bunga qo'shimcha ravishda, agar sizning hayotiy tsiklingizning kancalari yoki hodisalarni qayta ishlaydigan vositalar asinxron operatsiyalarni amalga oshirsa, endi siz ushbu va'da zanjiridagi har qanday keraksiz xatolar sizning xatolaringiz bilan ishlov beruvchilarga yuborilishi uchun funktsiyadan Promise-ni qaytarishingiz mumkin. Async / kutayotgan bo'lsangiz, bu yanada osonlashadi, chunki async funktsiyalari aniq va'dalarni qaytaradi:

Dinamik direktiv argumentlar

Direktiv dalillar endi dinamik JavaScript iboralarni qabul qilishi mumkin:

Batafsil ma'lumotni ushbu RFCda topish mumkin. Qulaylik bilan, agar argument qiymati nol bo'lsa, bog'lovchi / tinglovchi o'chiriladi.

Kutubxona mualliflariga e'tibor bering: bu xususiyat Vue ish vaqti 2.6.0 yoki undan yuqori versiyani talab qiladi. Agar siz oldindan tuzilgan tarkibiy qismlarni etkazib bersangiz va 2.6-dan oldingi versiyalar bilan mosligini saqlamoqchi bo'lsangiz, uni dastlabki kodingizda ishlatishdan saqlaning.

Kompilyator ogohlantiruvchi xabarlarda kod ramkasi

GitHub foydalanuvchisi @gzzhanghao tomonidan taqdim etilgan yulduzlarni jalb qilish so'rovi tufayli, 2.6 dan boshlab shablonlarni yig'ish bo'yicha ogohlantirishlar endi manbalar haqida ma'lumot bilan birga keladi. Bu bizga ushbu ogohlantirishlar uchun yoqimli kod ramkalarini yaratishga imkon berdi:

Alohida reaktiv ob'ektlarni aniq yaratish

2.6 mustaqil reaktiv ob'ektlarni aniq yaratish uchun yangi global API-ni taqdim etadi:

Olingan ob'ekt to'g'ridan-to'g'ri hisoblash xususiyatlarida yoki render funktsiyalarida ishlatilishi mumkin va mutatsiyaga uchraganida tegishli yangilanishlarni keltirib chiqaradi.

Server tomonidan taqdim etish paytida ma'lumotlarni oldindan olish

ServerPrefetch yangi kancasi har qanday tarkibiy qismlarga (shunchaki marshrut darajasidagi komponentlar o'rniga) server tomonidan taqdim etilayotgan vaqtda ma'lumotlarni olish uchun imkon beradi, bu esa moslashuvchan foydalanish va ma'lumot olish va yo'riqnoma o'rtasida bog'lanishni kamaytirishga imkon beradi. Nuxt va vue-apollo kabi loyihalar ushbu yangi xususiyatdan foydalangan holda o'zlarining amalga oshirilishini soddalashtirishni rejalashtirishmoqda.

To'g'ridan-to'g'ri import qilish uchun ES modulini yaratish

Ilgari, bizning ES Module-ni yaratish birinchi navbatda bukuvchilar bilan foydalanish uchun mo'ljallangan. Ushbu tuzilmalar kompilyatsiya vaqtida almashtirilishi kerak bo'lgan atrof-muhit o'zgaruvchisidan foydalanishni o'z ichiga oladi. Endi Vue 2.6 brauzerda to'g'ridan-to'g'ri foydalanish uchun mo'ljallangan ES Module tuzilishini taqdim etadi:

Muhim ichki o'zgarishlar

Keyingi belgini Mikrotaskka qaytarish

2.5.0-da, biz yangilanishni v-on-da ishlov beruvchida ishga tushirilgan bo'lsa, navbatdagi yangilanishlarni navbatga qo'yish uchun Microtasks o'rniga Macrotasks-dan foydalanishni keltirib chiqargan ichki tuzatish kiritdik. Dastlab bu brauzer chetlari ba'zi holatlarini tuzatish uchun mo'ljallangan edi, ammo bu o'z navbatida boshqa muammolarga olib keldi. 2.6-da biz asl sonning sodda echimini topdik, bu esa NextTick-ni barcha hollarda doimiy ravishda Microrotasks-dan foydalanishga qaytarishga imkon beradi.

Agar siz ko'proq texnik tafsilotlar bilan qiziqsangiz, buni shu erda tekshiring.

$ ScopedSlots-ning funktsiyalari endi har doim Arrays-ni qaytaradi

(Ushbu o'zgarish faqat render funktsiyasi foydalanuvchilariga ta'sir qiladi.) Render funktsiyalarida, kengaytirilgan uyalar bunga sabab bo'ladi. $ ScopedSlots funktsiyalar sifatida. Hozirgi kunga qadar, kengaytirilgan uyali funktsiyani chaqirish bitta VNode yoki VNodes Array-ni ota-komponent tarkibiy qismidan o'tayotgan narsaga asoslangan holda qaytarishi mumkin. Bu vijdonan nazorat edi, chunki bu qaytish qiymati turini noaniq va noaniq holatlarga olib kelishi mumkin. 2.6-da, slot funktsiyalari endi VNodes-ning Array-ni yoki aniqlanmagan qiymatini qaytarish uchun kafolatlangan. Agar mavjud Array return qiymatlari to'g'ri tekshirilmasa, bu ba'zi mavjud kodlarga ta'sir qilishi mumkin. Bu erda batafsil ma'lumot.

Qichqiriqlar

Ushbu nashrni jalb qilishda hissa qo'shganlarga va RFC muhokamalarida qatnashgan barcha jamoalarga rahmat.