Blog

Vue Plugin

Vue Plugin

ํ”Œ๋Ÿฌ๊ทธ์ธ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ „์—ญ ์ˆ˜์ค€ ๊ธฐ๋Šฅ์„ vue์— ์ถ”๊ฐ€ํ•œ๋‹ค

ํ”Œ๋Ÿฌ๊ทธ์ธ ์œ ํ˜•

1.
์ „์—ญ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ ํ˜น์€ ์†์„ฑ
2.
๋””๋ ‰ํ‹ฐ๋ธŒ, ํ•„ํ„ฐ, ์ „ํ™˜ ํšจ๊ณผ ๋“ฑ
3.
์–ด๋””์„œ๋“  ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ mixin
4.
์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€
5.
์›๋ž˜ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” api๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ ์œ„์˜ ๊ธฐ๋Šฅ๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

ํ”Œ๋Ÿฌ๊ทธ์ธ ์ถ”๊ฐ€

let MyPlugin = {} MyPlugin.install = (Vue, options) => { // 1. ์ „์—ญ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฉ”์„œ๋“œ ํ˜น์€ ์†์„ฑ Vue.globalMethod = () => { ... } // 2. ๋””๋ ‰ํ‹ฐ๋ธŒ, ํ•„ํ„ฐ, ์ „ํ™˜ ํšจ๊ณผ ๋“ฑ Vue.directive('my-directive', { bind (el, biding, vnode, oldVnode) { ... } }) // 3. ์–ด๋””์„œ๋“  ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ mixin Vue.mixin({ created () { ... } }) // 4. ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ ์ถ”๊ฐ€ Vue.prototype.$myMethod = () => { ... } } export default MyPlugin
JavaScript
๋ณต์‚ฌ

ํ”Œ๋Ÿฌ๊ทธ์ธ ์ ์šฉ

import myPlugin from './plugins/myPlugin' Vue.use(myPlugin)
JavaScript
๋ณต์‚ฌ

์ฐธ๊ณ 

โ€ข
https://kr.vuejs.org/v2/guide/plugins.html