Vue.js là gì?

Công Nghệ
Vue.js là gì?
Bài viết được sự cho phép của tác giả Nguyễn Xuân Tài Vue.js trong lập trình website quan trọng như thế nào? Xin chào tất cả anh em đam mê ngành công nghệ thông tin. Chắc hẳn là anh em ít khi thấy người ta chia sẻ nhiều về bất cứ tài liệu nào nói về framework của vue.js. Hôm nay viết mã bug sẽ chia sẻ cơ bản về nó nhé. Nhưng trước khi muốn học được nó thì ae phải biết qua htm, css, javascript một chút đã nhé. Mẫu cú pháp câu lệnh trong Vue.js 3 phút làm quen với Vue.js Giới thiệu Vue.js là gì? Vue (phát âm là / vjuː /, like view ) là một khung tiến bộ để xây dựng giao diện người dùng. Không giống như các framework nguyên khối khác, Vue được thiết kế từ đầu để có thể áp dụng dần dần. Thư viện lõi chỉ tập trung vào lớp xem và dễ dàng lấy và tích hợp với các thư viện khác hoặc các dự án hiện có. Mặt khác, Vue cũng hoàn toàn có khả năng cung cấp năng lượng cho các Ứng dụng Trang đơn khi được sử dụng kết hợp với các công cụ hiện đại và các thư viện hỗ trợ . Nếu bạn muốn tìm hiểu thêm về Vue trước khi đi sâu vào, chúng tôi đã tạo một video hướng dẫn về các nguyên tắc cốt lõi và một dự án mẫu. Nếu bạn là một nhà phát triển giao diện người dùng có kinh nghiệm và muốn biết Vue so với các thư viện / khung công tác khác như thế nào. Hướng dẫn cài đặt: Hướng dẫn chính thức giả định kiến ​​thức trình độ trung cấp về HTML, CSS và...

Bài viết được sự cho phép của tác giả Nguyễn Xuân Tài

 Vue.js trong lập trình website quan trọng như thế nào?

Xin chào tất cả anh em đam mê ngành công nghệ thông tin. Chắc hẳn là anh em ít khi thấy người ta chia sẻ nhiều về bất cứ tài liệu nào nói về framework của vue.js. Hôm nay viết mã bug sẽ chia sẻ cơ bản về nó nhé. Nhưng trước khi muốn học được nó thì ae phải biết qua htm, css, javascript một chút đã nhé.

Giới thiệu Vue.js là gì?

Vue (phát âm là / vjuː /, like view ) là một khung tiến bộ để xây dựng giao diện người dùng. Không giống như các framework nguyên khối khác, Vue được thiết kế từ đầu để có thể áp dụng dần dần. Thư viện lõi chỉ tập trung vào lớp xem và dễ dàng lấy và tích hợp với các thư viện khác hoặc các dự án hiện có. Mặt khác, Vue cũng hoàn toàn có khả năng cung cấp năng lượng cho các Ứng dụng Trang đơn khi được sử dụng kết hợp với các công cụ hiện đại và các thư viện hỗ trợ .

Nếu bạn muốn tìm hiểu thêm về Vue trước khi đi sâu vào, chúng tôi đã tạo một video hướng dẫn về các nguyên tắc cốt lõi và một dự án mẫu.

Nếu bạn là một nhà phát triển giao diện người dùng có kinh nghiệm và muốn biết Vue so với các thư viện / khung công tác khác như thế nào. Hướng dẫn cài đặt:

Hướng dẫn chính thức giả định kiến ​​thức trình độ trung cấp về HTML, CSS và JavaScript. Nếu bạn là người hoàn toàn mới với việc phát triển giao diện người dùng, có thể không phải là ý tưởng tốt nhất nếu bạn nhảy ngay vào một khuôn khổ như bước đầu tiên của bạn – hãy nắm bắt những điều cơ bản sau đó quay lại! Kinh nghiệm trước với các khuôn khổ khác sẽ giúp ích, nhưng không bắt buộc.

Cách dễ nhất để dùng thử Vue.js là sử dụng ví dụ Hello World . Vui lòng mở nó trong một tab khác và làm theo khi chúng ta xem qua một số ví dụ cơ bản. Hoặc, bạn có thể tạo một index.htmltệp và bao gồm Vue với:

<!-- development version, includes helpful console warnings -->

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>

hoặc là:

<!-- production version, optimized for size and speed -->

<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>

Các cài đặt trang cung cấp nhiều tùy chọn cài đặt Vue. Lưu ý: Chúng tôi không khuyên người mới bắt đầu nên bắt đầu vue-cli, đặc biệt nếu bạn chưa quen với các công cụ xây dựng dựa trên Node.js.

Nếu bạn thích thứ gì đó tương tác hơn, bạn cũng có thể xem loạt bài hướng dẫn này trên Scrimba , cung cấp cho bạn sự kết hợp giữa video màn hình và sân chơi mã mà bạn có thể tạm dừng và phát lại bất cứ lúc nào.

Cốt lõi của Vue.js là một hệ thống cho phép chúng tôi kết xuất dữ liệu một cách khai báo tới DOM bằng cách sử dụng cú pháp mẫu đơn giản:

<div id="app">

  {{ message }}

</div>

var app = new Vue({

  el: '#app',

  data: {

    message: 'Hello Vue!'

  }

})

Chúng tôi đã tạo ứng dụng Vue đầu tiên của mình! Điều này trông khá giống với việc kết xuất một mẫu chuỗi, nhưng Vue đã thực hiện rất nhiều công việc. Dữ liệu và DOM hiện đã được liên kết và mọi thứ hiện đã hoạt động . Làm sao mà chúng ta biết được? Mở bảng điều khiển JavaScript của trình duyệt của bạn (ngay bây giờ, trên trang này) và đặt app.messagethành một giá trị khác. Bạn sẽ thấy ví dụ được hiển thị ở trên cập nhật tương ứng.

Lưu ý rằng chúng ta không còn phải tương tác trực tiếp với HTML nữa. Một ứng dụng Vue tự gắn chính nó vào một phần tử DOM duy nhất ( #apptrong trường hợp của chúng tôi) sau đó kiểm soát hoàn toàn nó. HTML là điểm nhập của chúng tôi, nhưng mọi thứ khác xảy ra trong phiên bản Vue mới được tạo.

Ngoài nội suy văn bản, chúng ta cũng có thể ràng buộc các thuộc tính phần tử như sau:

<div id="app-2">

  <span v-bind:title="message">

    Hover your mouse over me for a few seconds

    to see my dynamically bound title!

  </span>

</div>

var app2 = new Vue({

  el: '#app-2',

  data: {

    message: 'You loaded this page on ' + new Date().toLocaleString()

  }

})

Ở đây chúng tôi đang gặp một cái gì đó mới. Các v-bindthuộc tính mà bạn đang nhìn thấy được gọi là một chỉ thị . Các chỉ thị có tiền tố là v-để chỉ ra rằng chúng là các thuộc tính đặc biệt do Vue cung cấp và như bạn có thể đoán, chúng áp dụng hành vi phản ứng đặc biệt cho DOM được hiển thị. Ở đây, về cơ bản nó đang nói “giữ cho titlethuộc tính của phần tử này được cập nhật với thuộc messagetính trên phiên bản Vue.”

Nếu bạn mở lại bảng điều khiển JavaScript và nhập app2.message = ‘some new message’, một lần nữa bạn sẽ thấy rằng HTML liên kết – trong trường hợp này là titlethuộc tính – đã được cập nhật.

Cũng dễ dàng chuyển đổi sự hiện diện của một phần tử:

<div id="app-3">

  <span v-if="seen">Now you see me</span>

</div>

var app3 = new Vue({

  el: '#app-3',

  data: {

    seen: true

  }

})

Hãy tiếp tục và nhập app3.seen = falsevào bảng điều khiển. Bạn sẽ thấy thông báo biến mất.

Ví dụ này chứng minh rằng chúng ta có thể liên kết dữ liệu không chỉ với văn bản và thuộc tính mà còn với cấu trúc của DOM. Hơn nữa, Vue cũng cung cấp một hệ thống hiệu ứng chuyển tiếp mạnh mẽ có thể tự động áp dụng các hiệu ứng chuyển tiếp khi các yếu tố được Vue chèn / cập nhật / loại bỏ.

Có khá nhiều chỉ thị khác, mỗi chỉ thị có chức năng đặc biệt riêng. Ví dụ, v-forchỉ thị có thể được sử dụng để hiển thị danh sách các mục bằng cách sử dụng dữ liệu 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: 'Learn JavaScript' },

      { text: 'Learn Vue' },

      { text: 'Build something awesome' }

    ]

  }

})

Trong bảng điều khiển, hãy nhập app4.todos.push({ text: ‘New item’ }). Bạn sẽ thấy một mục mới được thêm vào danh sách.

Xử lý đầu vào của người dùng

Để cho phép người dùng tương tác với ứng dụng của bạn, chúng tôi có thể sử dụng lệnh v-onnày để đính kèm trình xử lý sự kiện gọi các phương thức trên các phiên bản Vue của chúng tôi:

<div id="app-5">

  <p>{{ message }}</p>

  <button v-on:click="reverseMessage">Reverse Message</button>

</div>

var app5 = new Vue({

  el: '#app-5',

  data: {

    message: 'Hello Vue.js!'

  },

  methods: {

    reverseMessage: function () {

      this.message = this.message.split('').reverse().join('')

    }

  }

})

Lưu ý rằng trong phương pháp này, chúng tôi cập nhật trạng thái của ứng dụng mà không cần chạm vào DOM – tất cả các thao tác DOM đều do Vue xử lý và mã bạn viết tập trung vào logic cơ bản.

Vue cũng cung cấp v-modelchỉ thị giúp cho việc ràng buộc hai chiều giữa đầu vào biểu mẫu và trạng thái ứng dụng trở nên dễ dàng:

<div id="app-6">

  <p>{{ message }}</p>

  <input v-model="message">

</div>

var app6 = new Vue({

  el: '#app-6',

  data: {

    message: 'Hello Vue!'

  }

})

Sáng tác với các thành phần

Hệ thống thành phần là một khái niệm quan trọng khác trong Vue, bởi vì nó là một sự trừu tượng cho phép chúng ta xây dựng các ứng dụng quy mô lớn bao gồm các thành phần nhỏ, khép kín và thường có thể tái sử dụng. Nếu chúng ta nghĩ về nó, hầu hết mọi loại giao diện ứng dụng đều có thể được trừu tượng hóa thành một cây các thành phần:

Vue.js là gì?Vue.js là gì?
giới thiệu vue.js là gì

Trong Vue, một thành phần về cơ bản là một thể hiện Vue với các tùy chọn được xác định trước. Đăng ký một thành phần trong Vue rất đơn giản:

// Define a new component called todo-item

Vue.component('todo-item', {

  template: '<li>This is a todo</li>'

})

var app = new Vue(...)

Bây giờ bạn có thể soạn nó trong mẫu của một thành phần khác:

<ol>

  <!-- Create an instance of the todo-item component -->

  <todo-item></todo-item>

</ol>

Nhưng điều này sẽ hiển thị cùng một văn bản cho mọi việc làm, điều này không quá thú vị. Chúng ta có thể chuyển dữ liệu từ phạm vi cha vào các thành phần con. Chúng ta hãy sửa đổi định nghĩa thành phần để làm cho nó chấp nhận một prop :

Vue.component('todo-item', {

  // The todo-item component now accepts a

  // "prop", which is like a custom attribute.

  // This prop is called todo.

  props: ['todo'],

  template: '<li>{{ todo.text }}</li>'

})

Bây giờ chúng ta có thể chuyển việc cần làm vào từng thành phần lặp lại bằng cách sử dụng v-bind:

<div id="app-7">

  <ol>

    <!--

      Now we provide each todo-item with the todo object

      it's representing, so that its content can be dynamic.

      We also need to provide each component with a "key",

      which will be explained later.

    -->

    <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: '<li>{{ todo.text }}</li>'

})

var app7 = new Vue({

  el: '#app-7',

  data: {

    groceryList: [

      { id: 0, text: 'Vegetables' },

      { id: 1, text: 'Cheese' },

      { id: 2, text: 'Whatever else humans are supposed to eat' }

    ]

  }

})

Đây là một ví dụ có sẵn, nhưng chúng tôi đã quản lý để tách ứng dụng của mình thành hai đơn vị nhỏ hơn và phần tử con được tách biệt hợp lý khỏi phần tử gốc thông qua giao diện đạo cụ. Giờ đây, chúng tôi có thể cải thiện hơn nữa <todo-item>thành phần của mình với mẫu và logic phức tạp hơn mà không ảnh hưởng đến ứng dụng mẹ.

Trong một ứng dụng lớn, cần phải chia toàn bộ ứng dụng thành các thành phần để giúp cho việc phát triển có thể quản lý được. Chúng ta sẽ nói nhiều hơn về các thành phần ở phần sau trong hướng dẫn , nhưng đây là một ví dụ (tưởng tượng) về mẫu của ứng dụng có thể trông như thế nào với các thành phần:

<div id="app">

  <app-nav></app-nav>

  <app-view>

    <app-sidebar></app-sidebar>

    <app-content></app-content>

  </app-view>

</div>

Liên quan đến các yếu tố tùy chỉnh

Bạn có thể nhận thấy rằng các thành phần Vue rất giống với Thành phần tùy chỉnh , là một phần của Thông số thành phần web . Đó là bởi vì cú pháp thành phần của Vue được mô hình hóa lỏng lẻo theo thông số kỹ thuật. Ví dụ: các thành phần Vue triển khai API Slot và isthuộc tính đặc biệt. Tuy nhiên, có một số điểm khác biệt chính:

Thông số Cấu phần Web đã được hoàn thiện, nhưng không được triển khai nguyên bản trong mọi trình duyệt. Safari 10.1+, Chrome 54+ và Firefox 63+ tự nhiên hỗ trợ các thành phần web. Trong khi đó, các thành phần Vue không yêu cầu bất kỳ polyfills nào và hoạt động nhất quán trong tất cả các trình duyệt được hỗ trợ (IE9 trở lên). Khi cần, các thành phần Vue cũng có thể được bao bọc bên trong một phần tử tùy chỉnh gốc.

Các thành phần Vue cung cấp các tính năng quan trọng không có sẵn trong các phần tử tùy chỉnh thuần túy, đáng chú ý nhất là luồng dữ liệu nhiều thành phần, giao tiếp sự kiện tùy chỉnh và tích hợp công cụ xây dựng.

Mặc dù Vue không sử dụng các yếu tố tùy chỉnh trong nội bộ, nhưng nó có khả năng tương tác tuyệt vời khi nói đến việc sử dụng hoặc phân phối dưới dạng các yếu tố tùy chỉnh. Vue CLI cũng hỗ trợ xây dựng các thành phần Vue tự đăng ký như các phần tử tùy chỉnh gốc.

Bài viết gốc được đăng tải tại vietmabug.blogspot.com

Có thể bạn quan tâm:

Xem thêm Việc làm Developer hấp dẫn trên Station D

Bài viết liên quan

Bộ cài đặt Laravel Installer đã hỗ trợ tích hợp Jetstream

Bộ cài đặt Laravel Installer đã hỗ trợ tích hợp Jetstream

Bài viết được sự cho phép của tác giả Chung Nguyễn Hôm nay, nhóm Laravel đã phát hành một phiên bản chính mới của “ laravel/installer ” bao gồm hỗ trợ khởi động nhanh các dự án Jetstream. Với phiên bản mới này khi bạn chạy laravel new project-name , bạn sẽ nhận được các tùy chọn Jetstream. Ví dụ: API Authentication trong Laravel-Vue SPA sử dụng Jwt-auth Cách sử dụng Laravel với Socket.IO laravel new foo --jet --dev Sau đó, nó sẽ hỏi bạn thích stack Jetstream nào hơn: Which Jetstream stack do you prefer? [0] Livewire [1] inertia > livewire Will your application use teams? (yes/no) [no]: ... Nếu bạn đã cài bộ Laravel Installer, để nâng cấp lên phiên bản mới bạn chạy lệnh: composer global update Một số trường hợp cập nhật bị thất bại, bạn hãy thử, gỡ đi và cài đặt lại nha composer global remove laravel/installer composer global require laravel/installer Bài viết gốc được đăng tải tại chungnguyen.xyz Có thể bạn quan tâm: Cài đặt Laravel Làm thế nào để chạy Sql Server Installation Center sau khi đã cài đặt xong Sql Server? Quản lý các Laravel route gọn hơn và dễ dàng hơn Xem thêm Tuyển dụng lập trình Laravel hấp dẫn trên Station D

By stationd
Principle thiết kế của các sản phẩm nổi tiếng

Principle thiết kế của các sản phẩm nổi tiếng

Tác giả: Lưu Bình An Phù hợp cho các bạn thiết kế nào ko muốn làm code dạo, design dạo nữa, bạn muốn cái gì đó cao hơn ở tầng khái niệm Nếu lập trình chúng ta có các nguyên tắc chung khi viết code như KISS , DRY , thì trong thiết kế cũng có những nguyên tắc chính khi làm việc. Những nguyên tắc này sẽ là kim chỉ nam, nếu có tranh cãi giữa các member trong team, thì cứ đè nguyên tắc này ra mà giải quyết (nghe hơi có mùi cứng nhắc, mình thì thích tùy cơ ứng biến hơn) Tìm các vị trí tuyển dụng designer lương cao cho bạn Nguyên tắc thiết kế của GOV.UK Đây là danh sách của trang GOV.UK Bắt đầu với thứ user cần Làm ít hơn Thiết kế với dữ liệu Làm mọi thứ thật dễ dàng Lặp. Rồi lặp lại lần nữa Dành cho tất cả mọi người Hiểu ngữ cảnh hiện tại Làm dịch vụ digital, không phải làm website Nhất quán, nhưng không hòa tan (phải có chất riêng với thằng khác) Cởi mở, mọi thứ tốt hơn Bao trừu tượng luôn các bạn, trang Gov.uk này cũng có câu tổng quát rất hay Thiết kế tốt là thiết kế có thể sử dụng. Phục vụ cho nhiều đối tượng sử dụng, dễ đọc nhất nhất có thể. Nếu phải từ bỏ đẹp tinh tế – thì cứ bỏ luôn . Chúng ta tạo sản phẩm cho nhu cầu sử dụng, không phải cho người hâm mộ . Chúng ta thiết kế để cả nước sử dụng, không phải những người đã từng sử dụng web. Những người cần dịch vụ của chúng ta nhất là những người đang cảm thấy khó sử dụng dịch...

By stationd
Hiểu về trình duyệt – How browsers work

Hiểu về trình duyệt – How browsers work

Bài viết được sự cho phép của vntesters.com Khi nhìn từ bên ngoài, trình duyệt web giống như một ứng dụng hiển thị những thông tin và tài nguyên từ server lên màn hình người sử dụng, nhưng để làm được công việc hiển thị đó đòi hỏi trình duyệt phải xử lý rất nhiều thông tin và nhiều tầng phía bên dưới. Việc chúng ta (Developers, Testers) tìm hiểu càng sâu tầng bên dưới để nắm được nguyên tắc hoạt động và xử lý của trình duyệt sẽ rất hữu ích trong công việc viết code, sử dụng các tài nguyên cũng như kiểm thử ứng dụng của mình. Cách để npm packages chạy trong browser Câu hỏi phỏng vấn mẹo về React: Component hay element được render trong browser? Khi hiểu được cách thức hoạt động của trình duyệt chúng ta có thể trả lời được rất nhiều câu hỏi như: Tại sao cùng một trang web lại hiển thị khác nhau trên hai trình duyệt? Tại sao chức năng này đang chạy tốt trên trình duyệt Firefox nhưng qua trình duyệt khác lại bị lỗi? Làm sao để trang web hiển thị nội dung nhanh và tối ưu hơn một chút?… Hy vọng sau bài này sẽ giúp các bạn có một cái nhìn rõ hơn cũng như giúp ích được trong công việc hiện tại. 1. Cấu trúc của một trình duyệt Trước tiên chúng ta đi qua cấu trúc, thành phần chung và cơ bản nhất của một trình duyệt web hiện đại, nó sẽ gồm các thành phần (tầng) như sau: Thành phần nằm phía trên là những thành phần gần với tương tác của người dùng, càng phía dưới thì càng sâu và nặng về xử lý dữ liệu hơn tương tác. Nhiệm...

By stationd
Thị trường EdTech Vietnam- Nhiều tiềm năng nhưng còn bị bỏ ngỏ tại Việt Nam

Thị trường EdTech Vietnam- Nhiều tiềm năng nhưng còn bị bỏ ngỏ tại Việt Nam

Lĩnh vực EdTech (ứng dụng công nghệ vào các sản phẩm giáo dục) trên toàn cầu hiện nay đã tương đối phong phú với nhiều tên tuổi lớn phân phối đều trên các hạng mục như Broad Online Learning Platforms (nền tảng cung cấp khóa học online đại chúng – tiêu biểu như Coursera, Udemy, KhanAcademy,…) Learning Management Systems (hệ thống quản lý lớp học – tiêu biểu như Schoology, Edmodo, ClassDojo,…) Next-Gen Study Tools (công cụ hỗ trợ học tập – tiểu biểu như Kahoot!, Lumosity, Curriculet,…) Tech Learning (đào tạo công nghệ – tiêu biểu như Udacity, Codecademy, PluralSight,…), Enterprise Learning (đào tạo trong doanh nghiệp – tiêu biểu như Edcast, ExecOnline, Grovo,..),… Hiện nay thị trường EdTech tại Việt Nam đã đón nhận khoảng đầu tư khoảng 55 triệu đô cho lĩnh vực này nhiều đơn vị nước ngoài đang quan tâm mạnh đến thị trường này ngày càng nhiều hơn. Là một trong những xu hướng phát triển tốt, và có doanh nghiệp đã hoạt động khá lâu trong ngành nêu tại infographic như Topica, nhưng EdTech vẫn chỉ đang trong giai đoạn sơ khai tại Việt Nam. Tại Việt Nam, hệ sinh thái EdTech trong nước vẫn còn rất non trẻ và thiếu vắng nhiều tên tuổi trong các hạng mục như Enterprise Learning (mới chỉ có MANA), School Administration (hệ thống quản lý trường học) hay Search (tìm kiếm, so sánh trường và khóa học),… Với chỉ dưới 5% số dân công sở có sử dụng một trong các dịch vụ giáo dục online, EdTech cho thấy vẫn còn một thị trường rộng lớn đang chờ được khai phá. *** Vừa qua Station D đã công bố Báo cáo Vietnam IT Landscape 2019 đem đến cái nhìn toàn cảnh về các ứng dụng công...

By stationd