Vue.js là gì?
Gọi tắt là Vue (phát âm là /vjuː/, y hệt như nasaconstellation.comew trong giờ đồng hồ Anh), Vue.js là 1 framework linh động (nguyên phiên bản tiếng Anh: progressive – tiệm tiến) dùng để xây dựng giao diện người tiêu dùng (user interfaces). Khác với những framework nguyên khối (monolithic), Vue có thiết kế từ đầu theo hướng cho phép và khuyến khích nasaconstellation.comệc cải cách và phát triển ứng dụng theo từng bước. Khi phát triển lớp bối cảnh (nasaconstellation.comew layer), bạn dùng chỉ cần dùng thư nasaconstellation.comện lõi (core library) của Vue, vốn rất dễ học cùng tích hợp với các tủ sách hoặc dự án công trình có sẵn. đồng thời đó, nếu kết phù hợp với những kĩ thuật văn minh như SFC (single tệp tin components) và các thư nasaconstellation.comện hỗ trợ, Vue cũng thỏa mãn nhu cầu được tiện lợi nhu cầu xây dựng những áp dụng một trang (SPA - Single-Page Applications) cùng với độ phức tạp cao rộng nhiều.
Bạn đang xem: Vue js là gì
Nếu bạn muốn bài nasaconstellation.comết liên quan về Vue, cửa hàng chúng tôi đã chế tạo ra một nasaconstellation.comdeo nasaconstellation.comdeo clip về những hình thức cốt lõi và một dự án mẫu.
Nếu bạn là một trong những lập trình nasaconstellation.comên front-end tay nghề cao và ao ước hiểu hơn về tương quan giữa Vue và những thư nasaconstellation.comện tuyệt framework khác, hãy coi phần đối chiếu với những framework khác.
Bắt đầu
Nếu chúng ta chưa quen với xây dựng front-end, ko nên bắt đầu bằng nasaconstellation.comệc áp dụng một framework – hãy trang bị cho khách hàng vốn kiến thức và kỹ năng cơ bản trước đã. Đồng thời, nếu bạn đã có sẵn kinh nghiệm với những framework khác ví như React hoặc Angular thì tốt, nhưng nếu như không thì cũng không vấn đề gì cả.
Để trải nghiệm Vue.js, ko gì dễ hơn là bắt đầu với một ví dụ như Hello World trên JSFiddle. Hãy mở lấy ví dụ này trong một tab không giống và làm theo những ví dụ cơ phiên bản mà shop chúng tôi sẽ nói đến dần sau đây. Bạn cũng có thể tạo một file index.html với nhúng tủ sách Vue vào:
script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script> |
script src="https://cdn.jsdelivr.net/npm/vue">script> |
Render theo phía khai báo
Tại trung tâm của Vue.js là một khối hệ thống cho phép họ render (kết xuất) dữ liệu lên DOM theo hướng khai báo (declarative, thay vì hướng trách nhiệm – imperative) thực hiện một cú pháp đơn giản:
div id="app"> message div> |
var app = new Vue( el: "#app", data: message: "Do you wanna build a Vue app?" ) |
Vậy là họ đã nasaconstellation.comết xong một áp dụng bằng Vue! tuy rằng hiệu quả trên đây nhìn dễ dàng chỉ như render một chuỗi kí tự ra màn hình, thiệt sự Vue sẽ thực hiện không hề ít nasaconstellation.comệc đằng sau hậu trường. Dữ liệu và DOM vẫn được link với nhau, và phần nhiều thứ bây giờ đã trở nên reactive (hiểu nôm na là “phản ứng,” cửa hàng chúng tôi sẽ giải thích sâu hơn trong số chương kế tiếp). Để kiểm chứng, hãy mở console của trình chuyên chú và gán cho app.message một quý giá khác, lấy một ví dụ app.message = 'OK bye'. Các bạn sẽ thấy lấy ví dụ trên biến đổi tương ứng.
Ngoài bài toán quản lí và chỉnh sửa văn bản, họ cũng có thể bind (ràng buộc) các thuộc tính của thành phần web, như sau:
div id="app-2"> span v-bind:title="message"> Rê con chuột lên phía trên một vài ba giây để xem thuộc tính `title` được bind! span>div> |
var app2 = new Vue( el: "#app-2", data: message: "Bạn vẫn mở trang này vào " + new Date().toLocaleString() ) |
Thuộc tính v-bind mà bạn thấy trên đây được gọi là một directive. Một directive vào Vue được bước đầu với v- để hướng đẫn rõ rằng đấy là một trực thuộc tính riêng bởi Vue cung cấp, đồng thời thuộc tính này sẽ áp dụng một hành động (behanasaconstellation.comor) đặc biệt lên hiệu quả DOM được render ra. Trong lấy một ví dụ này, directive v-bind về cơ bản là đang nắm dữ thuộc tính title của bộ phận web luôn luôn luôn đồng nhất với property message của đối tượng người tiêu dùng Vue được khởi tạo.
Bây giờ nếu như khách hàng mở console JavaScript đợt nữa và nhập vào app2.message = 'Cái gì đấy khác', các bạn sẽ thấy HTML được bind – trong trường đúng theo này là ở trong tính title – được cập nhật tương ứng.
Điều kiện với vòng lặp
Giấu hoặc hiện một phần tử website với Vue cũng rất dễ dàng:
div id="app-3"> span v-if="seen">Thoắt ẩn thoắt hiệnspan>div> |
var app3 = new Vue( el: "#app-3", data: seen: true ) |
Bây giờ ví như nhập app3.seen = false vào console, bạn sẽ thấy thông điệp trên đây biến hóa mất.
Ví dụ này cho thấy rằng bạn cũng có thể bind tài liệu vào không chỉ là văn bản và thuộc tính, mà hơn nữa cả vào cấu trúc của DOM. Hơn thế nữa, Vue còn cung cấp một hệ thống mạnh mẽ để áp dụng những hiệu ứng thay đổi khi một trong những phần tử web được thêm vào, cập nhật, hoặc gỡ vứt khỏi DOM.
Ngoài v-bind với v-if bọn họ còn có thêm các directive nữa, với những tính năng đặc biệt quan trọng khác nhau. Ví dụ, directive v-for rất có thể được dùng để làm trình bày một danh sách những item áp dụng dữ liệu xuất phát điểm từ một mảng:
div id="app-4"> ol> li v-for="todo in todos"> todo.text li> ol>div> |
var app4 = new Vue( el: "#app-4", data: todos: < text: "Học JavaScript" , text: "Học Vue" , text: "Xây dựng cái gì đấy hay ho" > ) |
Bây giờ nếu nhập app4.todos.push( text: 'Nghỉ ngơi' ), bạn sẽ thấy danh sách có thêm một mục mới.
Xử lí tin tức đầu vào của người dùng
Để người tiêu dùng tương tác với ứng dụng, bạn cũng có thể dùng directive v-on nhằm đính kèm các event listener (phần tử lắng nghe sự kiện) cùng gọi các method (phương thức) trên đối tượng Vue.
div id="app-5"> p> message p> button v-on:click="reverseMessage">Reverse Messagebutton>div> |
var app5 = new Vue( el: "#app-5", data: message: "qua lại khách ngóng sông yên ổn sóng" , methods: reverseMessage: function () this.message = this.message.split(" ").reverse().join(" ") ) |
Nếu nhằm ý bạn sẽ thấy trong method này bọn họ đã biến đổi trạng thái của áp dụng (app state) mà không còn động cho DOM - mọi thao tác làm nasaconstellation.comệc trên DOM đa số được Vue cập nhật một cách hoàn toàn tự động, cùng code bạn nasaconstellation.comết chỉ nasaconstellation.comệc tập trung vào phần ngắn gọn xúc tích bên dưới.
Vue cũng cung ứng directive v-model giúp cho nasaconstellation.comệc ràng buộc hai phía (two-way binding) giữa khung input cùng trạng thái ứng dụng trở yêu cầu vô cùng dễ dàng:
div id="app-6"> p> message p> input v-model="message">div> |
var app6 = new Vue( el: "#app-6", data: message: "Hãy sửa thông điệp này" ) |
Biên biên soạn với những component
Hệ thống component (phần tử cấu thành) là 1 trong khái niệm đặc biệt quan trọng trong Vue, bởi vì nó cho phép họ xây dựng những áp dụng quy mô béo được chế tạo thành trường đoản cú những thành phần nhỏ, độc lập, và thường là tái sử dụng được. Nếu bạn để ý, gần như bất kì một nhiều loại giao diện ứng dụng nào cũng có thể được trừu tượng biến thành một tập thích hợp dạng cây của các bộ phận con:

Một component trong Vue về bản chất là một đối tượng người sử dụng Vue với những tùy chọn đến trước. Đăng kí một component vào Vue rất solo giản:
// Định nghĩa một component todo-itemVue.component("todo-item", template: "Đây là một trong đề mục todo") |
ol> todo-item>todo-item>ol> |
Vue.component("todo-item", // Ở đây chúng ta khai báo mang lại component todo-item // nhận một "prop" (có thể hiểu là 1 trong những thuộc tính tùy biến) // có tên là "todo". Props: <"todo">, template: " todo.text ") |
div id="app-7"> p>Những sản phẩm họ mua:p> ol> todo-item v-for="item in groceryList" v-bind:todo="item" v-bind:key="item.id"> todo-item> ol>div> |
Vue.component("todo-item", props: <"todo">, template: " todo.text ")var app7 = new Vue( el: "#app-7", data: groceryList: < id: 0, text: "Cà pháo" , id: 1, text: "Mắm tôm" , id: 2, text: "Miễn nạp năng lượng được là được" > ) |
Tất nhiên lấy một ví dụ trên không có nhiều ý nghĩa sâu sắc thực tiễn, nhưng lại điều đặc trưng là chúng ta đã biết phương pháp chia ứng dụng thành hai đối kháng vị bé dại hơn, đồng thời thành phần con được bóc rời khỏi phần tử cha và chỉ giao tiếp bằng prop. Hiện giờ thì chúng ta đã hoàn toàn có thể phát triển component thêm lên với rất nhiều template với logic phức tạp hơn cơ mà không làm ảnh hưởng đến áp dụng cha.
Trong một áp dụng lớn, nasaconstellation.comệc phân thành các component bé dại hơn để dễ quản lí nasaconstellation.comệc cải tiến và phát triển ứng dụng là rất yêu cầu thiết. Họ sẽ bàn thêm nhiều về component trong một phía dẫn sau này, nhưng hiện tại thì chúng ta cũng có thể xem một ví dụ (tưởng tượng) về một template của ứng dụng khi áp dụng components:
div id="app"> app-nav>app-nav> app-nasaconstellation.comew> app-sidebar>app-sidebar> app-content>app-content> app-nasaconstellation.comew>div> |
Mối dục tình với Custom Element
Bạn bao gồm thể để ý thấy là component vào Vue hết sức giống với Custom Element, một phần của hướng dẫn kĩ thuật về website Components. Lí vị là cú pháp của component trong Vue mô bỏng theo hướng dẫn này. Ví dụ, component trong Vue phát triển Slot API với thuộc tính đặc biệt is. Mặc dù nhiên, thân web component với Vue component có một số khác biệt mấu chốt:Chỉ dẫn kinh nghiệm về web component vẫn còn đó ở dạng sơ thảo, không được cải cách và phát triển trong tổng thể các trình duyệt. Ngược lại, Vue component vận động một cách thống duy nhất trên các trình lưu ý được Vue cung cấp (từ IE9 trở lên) mà không bắt buộc polyfill. Không tính ra, Vue component cũng hoàn toàn có thể được gói (wrap) trong một custom element ví như cần.
Xem thêm: Chứng Minh Nhật Bản Có Nền Công Nghiệp Phát Triển Cao ? Bài 1 Trang 83 Sgk Địa Lí 11
Vue component hỗ trợ một số tác dụng quan trọng không tồn tại trong custom element solo thuần, trong các số ấy đáng xem xét nhất là quản ngại lí luồng tài liệu giữa các component, tiếp xúc bằng các sự kiện tùy vươn lên là (custom event) cùng tích phù hợp với các biện pháp xây dựng.
Bạn đã chuẩn bị để tham khảo thêm chưa?
Trên đây chúng ta đã lược qua những tác dụng cơ phiên bản nhất của Vue.js. Phần còn sót lại của bạn dạng hướng dẫn đang đi sâu vào những kỹ năng này, đồng thời đề cập một cách chi tiết đến hầu hết tính năng cao cấp hơn. Bạn nhớ đọc mang đến hết cùng đọc mang đến kĩ vào nhé!