>웹 프론트엔드 >View.js >vue.js 플러그인은 무엇을 의미하나요?

vue.js 플러그인은 무엇을 의미하나요?

coldplay.xixi
coldplay.xixi원래의
2020-11-11 16:32:572775검색

vue.js 플러그인은 일반적으로 Vue에 전역 기능을 추가하는 데 사용됩니다. 플러그인의 기능 범위는 전역 메소드 [Vue.use()]를 통해 엄격하게 제한되지 않습니다. 이전에 완료된 [new Vue()]를 호출한 후 애플리케이션을 시작해야 합니다.

vue.js 플러그인은 무엇을 의미하나요?

【추천 관련 글: vue.js

플러그인은 일반적으로 Vue에 전역 기능을 추가하는 데 사용됩니다. 플러그인의 기능 범위에는 엄격한 제한이 없습니다. 일반적으로 다음과 같은 유형이 있습니다.

  • 전역 메서드 또는 속성을 추가합니다. 예: vue-custom-element

  • 전역 리소스 추가: 지시문/필터/전환 등 예를 들어 vue-touch

  • 는 전역 믹스인을 통해 일부 구성 요소 옵션을 추가합니다. 예를 들어, vue-router

  • 는 Vue.prototype에 Vue 인스턴스 메소드를 추가하여 추가합니다.

  • 위에 언급된 기능 중 하나 이상을 제공하면서 자체 API를 제공하는 라이브러리입니다. 예를 들어, vue-router

는 전역 메소드 Vue.use()를 통해 플러그인

을 사용합니다. 애플리케이션을 시작하려면 new Vue()를 호출하기 전에 완료해야 합니다.

// 调用 `MyPlugin.install(Vue)`
Vue.use(MyPlugin)
new Vue({
  // ...组件选项
})

선택적 옵션 개체를 전달할 수도 있습니다.

Vue.use(MyPlugin, { someOption: true })

Vue.use는 자동으로 동일한 플러그인의 다중 등록을 방지합니다. 플러그인은 한 번만 등록됩니다.

Vue.js에서 공식적으로 제공하는 일부 플러그인(예: vue-router)은 Vue가 액세스 가능한 전역 변수임을 감지하면 자동으로 Vue.use()를 호출합니다. 그러나 CommonJS와 같은 모듈 환경에서는 항상 Vue.use()를 명시적으로 호출해야 합니다. Vue.use()。然而在像 CommonJS 这样的模块环境中,你应该始终显式地调用 Vue.use()

// 用 Browserify 或 webpack 提供的 CommonJS 模块环境时
var Vue = require('vue')
var VueRouter = require('vue-router')
// 不要忘了调用此方法
Vue.use(VueRouter)

awesome-vue 集合了大量由社区贡献的插件和库。

开发插件

Vue.js的插件应该暴露一个 install

MyPlugin.install = function (Vue, options) {
  // 1. 添加全局方法或 property
  Vue.myGlobalMethod = function () {
    // 逻辑...
  }
  // 2. 添加全局资源
  Vue.directive('my-directive', {
    bind (el, binding, vnode, oldVnode) {
      // 逻辑...
    }
    ...
  })
  // 3. 注入组件选项
  Vue.mixin({
    created: function () {
      // 逻辑...
    }
    ...
  })
  // 4. 添加实例方法
  Vue.prototype.$myMethod = function (methodOptions) {
    // 逻辑...
  }
}

awesome-vue에는 커뮤니티에서 제공하는 플러그인과 라이브러리의 대규모 컬렉션이 있습니다.

플러그인 개발

Vue.js 플러그인은 install 메소드를 노출해야 합니다. 이 메소드의 첫 번째 매개변수는 Vue 생성자이고 두 번째 매개변수는 선택적 옵션 객체입니다: 🎜rrreee🎜🎜관련 무료 학습 권장사항: 🎜JavaScript🎜(동영상) 🎜🎜

위 내용은 vue.js 플러그인은 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.