這篇文章給大家分享的是關於如何將JS插件改寫成Vue的插件,內容很不錯,有需要的朋友可以參考一下,希望可以幫助到大家。
很多剛入坑vue的小夥伴,想用一些原來不用框架的JS插件,用在vue中,可是發現沒有效果。
這裡我先貼個例子。
下圖是一個外掛程式的效果圖
首先外掛程式原始碼需要下載。
找到裡面的index.html
,找到裡面的20行到87行,複製出來,找到你vue的項目,新個資料夾,新個js文件,內容如下
import wavePng from './wave.png' export default { install(Vue){ Vue.directive('wave', { // 当指令绑定好之后,立即触发的方法 inserted: function(el){ start(el) }, // 当指令的值变化后会触发update update: function(el, binding, vnode){ if(binding.value){ start(el) }else{ stop() } } }) } }
接著把剛剛貼上的外掛程式碼貼在最下面,記得把外掛程式原先有的閉包去掉。這個改裝的思路,就是改成Vue的自訂指令形式。
要怎麼使用呢,首先要在main.js
中
import wave from './components/wave.js' Vue.use(wave)
然後在你需要的元素中綁定指令,下面來個demo
<template> <p> </p> <p><span>60%</span></p> <button>start</button> <button>stop</button> </template> <script> import wave from './a' export default { data(){ return{ wave: true } } } </script> <!-- Add "scoped" attribute to limit CSS to this component only --> <style> .wave{width:200px;height:200px;overflow:hidden;border-radius:50%;background:rgba(255,203,103,.6);margin:100px auto;position:relative;text-align:center;display:table-cell;vertical-align:middle;} .wave span{display:inline-block;color:#fff;font-size:20px;position:relative;z-index:2; position: absolute; top: 50%; left: 50%; transform: translate(-50%) } .wave canvas{position:absolute;left:0;top:0;z-index:1;} </style>
最終改造完成,希望能對剛入坑Vue的朋友有幫助。
相關建議:
以上是如何將JS插件改寫成Vue的插件的詳細內容。更多資訊請關注PHP中文網其他相關文章!