Tác giả Evan You vừa thông báo phát hành Vue phiên bản 2.5 Level E. Bên cạnh cải thiện một số tính năng và sửa lỗi, phiên bản này có những điểm đáng chú ý sau:
Tìm hiểu Vuejs là gì tại đây : http://hoclaptrinh.vn/posts/tim-hieu-ve-javascript-framework-vuejs-la-gi
Với sự giúp đỡ từ đội ngũ phát triển TypeScript, việc khai báo kiểu dữ liệu được tích hợp sẵn trong API của Vue mà không cần sử dụng đến decorator vue-class-component
. Điều này giúp cho phần mở rộng Vetur trong VSCode hoạt động tốt hơn, đồng thời nâng cao hiệu quả của Intellisense với những người dùng JavaScript thông thường. Lưu ý, người dùng TypeScript được khuyến cáo nên nâng cấp các thư viện sau lên phiên bản mới nhất để tận dụng tính năng này: vue-router
, vuex
, vuex-router-sync
và vue-class-component
.
Trong các phiên bản 2.4 và trước đó, tùy chỉnh toàn cục config.errorHandler
thường được dùng để xử lý lỗi trong ứng dụng. Ngoài ra còn có tùy chỉnh renderError
trong component dành cho trường hợp lỗi xảy ra khi render. Tuy vậy, Vue vẫn còn thiếu một cơ chế để xử lý những lỗi chung chung khi chúng xảy ra ở một phần nào đó của ứng dụng.
Phiên bản 2.5 giới thiệu một hook mới errorCaptured
. Khi hook này được khai báo, component sẽ bắt tất cả lỗi, bao gồm lỗi xảy ra trong bản thân component đó, lỗi khi thực thi các hàm gọi lại bất đồng bộ - async callbacks, và lỗi ở các component con. Nếu bạn nào xài React 16 có thể liên hệ đến khái niệm Error Boundaries cũng tương tự vậy. Hook errorCaptured
có chữ ký hàm giống như errorHandler
, giống như vầy:
Vue.component('ErrorBoundary', {
data: () => ({ error: null }),
errorCaptured (err, vm, info) {
this.error = `${err.stack}\n\nfound in ${info} of component`
return false
},
render (h) {
if (this.error) {
return h('pre', { style: { color: 'red' }}, this.error)
}
// ignoring edge cases for the sake of demonstration
return this.$slots.default[0]
}
})
Sử dụng:
<error-boundary>
<another-component/>
</error-boundary>
Với vue-loader
phiên bản >= 13.3.0
, functional components được khai báo như Single-File Component (SFC) trong tập tin *.vue
đã có thể hot-reload, hỗ trợ scoped CSS và biên dịch template. Để khai báo một template được biên dịch như functional
component, bạn chỉ cần thêm thuộc tính functional như hình trên.
Tính năng này giúp cho việc chuyển đổi các component “lá” (leaf-component) sang dạng functional dễ dàng hơn, từ đó tối ưu hóa hiệu năng của ứng dụng.
Thư viện vue-server-renderer
mặc định được chạy trên môi trường Node.js, làm cho nó không hoạt động được trên những môi trường khác như php-v8js
hay Oracle Nashorn. Trong phiên bản 2.5, vue-server-renderer
được nâng cấp trở nên độc lập với môi trường, giúp cho nó có thể chạy tốt trên trình duyệt hay các engine JavaScript khác.
Viết câu trả lời
04/11/2017 23:21
Vuejs sẽ còn phát triển