首页 > web前端 > js教程 > 正文

如何将JS插件改写成Vue的插件

不言
发布: 2018-07-21 11:12:58
原创
3007人浏览过

本篇文章给大家分享的是关于如何将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 class="wave" v-wave="wave"><span>60%</span></p>
    <button @click="wave = true">start</button>
    <button @click="wave = false">stop</button>
  </p>
</template>

<script>
import wave from './a'
export default {
  data(){
    return{
      wave: true
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
.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的朋友有所帮助。

相关推荐:

vue父子组件之间是如何进行传值的

jQuery中$()函数的使用方法

以上就是如何将JS插件改写成Vue的插件的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
相关标签:
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号