- vừa được xem lúc

Giới thiệu đơn giản về Plugin trong Vue

0 0 42

Người đăng: Nguyen Quoc Anh

Theo Viblo Asia

Hello mọi người, tiếp tục chủ đề Vuejs thì hôm này, mình xin chia sẻ tiếp về một tính năng nhỏ nữa trong ngôn ngữ Frontend hót hòt họt này. Đó chính là Plugin, cái tên không quá xa lạ trong bất kì ngôn ngữ nào và ý nghĩa cũng không khác nhau là bao ?. Chúng ta bắt đầu tìm hiểu tính năng này nhé!

Khái niệm

  • Theo như lời giới thiệu trên trang chủ thì việc sử dụng plugin sẽ giúp chúng ta thêm những tính năng ở tầng global (cấp toàn cục).
  • Việc dùng plugin cũng trở nên thuận tiện khi chúng ta có thể sử dụng những tính năng bên ngoài mà không cần phải viết trực tiếp vào ứng dụng của mình. Nếu không cần sử dụng nữa, chúng ta có thể gỡ bỏ dễ dàng.
  • Không ràng buộc chúng ta phải viết Plugin theo kiểu nào, tuỳ vào mục đích hay yêu cầu của dự án mà bạn có thể viết theo một vài kiểu như:
    • Thêm phương thức, thuộc tính toàn cục
    • Thêm directive/filter/transition...
    • Thêm component options global thông qua mixin...
    • Thêm một số phương thức đối tượng (instance method) bằng cách đính kèm vào Vue.prototype.
  • Một plugin cho Vue nên cung cấp một phương thức install. Phương thức này sẽ được gọi với tham số đầu tiên là hàm dựng Vue, cùng với các tùy chọn khác:
MyPlugin.install = function (Vue, options) { // 1. Thêm phương thức hoặc thuộc tính cấp toàn cục Vue.myGlobalMethod = function () { } // 2. Thêm một directive cấp toàn cục Vue.directive('my-directive', { bind (el, binding, vnode, oldVnode) { } ... }) // 3. Thêm một số tùy chọn cho component Vue.mixin({ created: function () { } ... }) // 4. Thêm một phương thức đối tượng Vue.prototype.$myMethod = function (methodOptions) { }
}

Sử dụng Plugin

  • Ở đây mình xem demo chức năng thông báo (notification) thông qua Plugin với thư viện Notie, các bước install mình xin phép được bỏ qua.
  • Đầu tiên hãy tạo 1 file plugins/notie-global.js với đoạn code như sau:
export default { install (Vue, options) { Vue.mixin({ // code here }) }
}
  • Ở file main.js thì chỉ cần import để sử dụng, Vue.use tự động ngăn không cho sử dụng một plugin nhiều lần, vì vậy cho dù chúng ta có gọi Vue.use(NotieGlobal) bao nhiêu lần thì NotieGlobal cũng sẽ chỉ được cài đặt một lần duy nhất.
  • Một số plugin tự động gọi Vue.use() nếu phát hiện thấy biến toàn cục Vue. Tuy nhiên trong một môi trường module, ví dụ như CommonJS, bạn cần phải gọi Vue.use() một cách tường minh:
import Vue from 'vue'
import NotieGlobal from './plugins/notie-global'
Vue.use(NotieGlobal, { tham_so: neu_co })
  • Tiếp theo, khai báo methods trong mixin.
import { alert } from 'notie' export default { install (Vue, options) { Vue.mixin({ methods: { notie_success(message) { alert({ type: 1, text: message }) }, notie_warning(message) { alert({ type: 2, text: message }) }, notie_error(message) { alert({ type: 3, text: message }) }, // add more here } }) }
}
  • Cuối cùng là phần action để hiển thị thông báo, phần này viết trong template nhé:
<template> <div class="notifications"> <button @click="notie_success('Success!')">Click Success</button> <button @click="notie_warning('Warning!')">Click Warning</button> <button @click="notie_error('Error!')">Click Error</button> </div>
</template>
  • Chúng ta có 1 vài kết quả như sau, hoặc bạn có thêm xem demo ở đây

Kết luận

  • Trên đây là ví dụ nhỏ về cách tạo và sử dụng 1 plugin, hi vọng qua bài chia sẻ nhỏ, sẽ giúp bạn hiểu hơn về tính năng thú vị này và áp dụng và các dự án sắp tới của mình.
  • Cám ơn các bạn đã theo dõi, hẹn gặp lại!

Bình luận

Bài viết tương tự

- vừa được xem lúc

Ví dụ CRUD với Laravel và Vuejs.

1. Cài đặt Laravel. composer create-project --prefer-dist laravel/laravel vuelaravelcrud. .

0 0 141

- vừa được xem lúc

Bài 1: Cài đặt Vue và chạy chương trình Hello world đầu tiên

Ở bài đầu tiên này mình sẽ hướng dẫn các bài cài đặt VueJS vào project Laravel, sau đó chúng ta sẽ cùng xem những thứ cơ bản của Vue nhé. Vì Laravel đã hỗ trợ tích hợp VueJS nên việc cài đặt của chúng ta sẽ hết sức đơn giản.

0 0 125

- vừa được xem lúc

Lazy loading and code splitting in Vue.js

Việc giữ cho ứng dụng của bạn tải nhanh ngày càng khó hơn. Trong loạt bài này, tôi sẽ đi sâu vào các kỹ thuật tối ưu hiệu suất Vue và bạn có thể sử dụng trong các ứng dụng Vue.

0 0 103

- vừa được xem lúc

Validating Vue.js Forms Using Vuelidate

Introduction. Validate thông tin đầu vào trên các ứng dụng web là rất quan trọng.

0 0 201

- vừa được xem lúc

5 Good Practices mình đang sử dụng trong Vuejs

Mở đầu. Mình đã sử dụng vuejs được cũng được 1 năm trở lại đây.

0 0 87

- vừa được xem lúc

[P5] VueJS - Một vài Interpolations khác trong Vue

Ở bài viết trước, mình đã nói về một vài keyword trong Vue như v-if, v-else, v-show, v-for, ... Chúng thực chất là các syntax đặc biệt của Vue để thao tác linh hoạt với các DOM ảo, được gọi là Interpolations. Ngoài ra, Vue còn các Interpolations khác. Mục đích của nó thì đã quá rõ ràng, hiển thị tex

0 0 49