美文网首页超级简单的vue入门教程玄机随录
Vue.js入门教程(十五):如何创建自己的插件

Vue.js入门教程(十五):如何创建自己的插件

作者: 党云龙 | 来源:发表于2020-01-27 11:46 被阅读0次

设计师的效果能不能实现,得看我能不能找到插件


通常,我们不会去接触vue底层的东西,又或者我们突发奇想需要自己创造一套框架。可回头看看我们使用最多的,其实还是插件。
插件,你也可以理解为就是一套方法的集合,当我们需要调用它的时候,引入一下就行了。

举个例子,比如说,swiper和elementui。

一般来说,我们每个项目都会安装一大堆的插件。用于处理各种交互效果和逻辑,但是,网上能搜到了插件不一定能解决我们所有的问题。也就是说,我们剩下30%左右的逻辑部分是需要自己处理的,比如说,转化时间,处理字符串等等。

这些东西网上是没有现成插件的,需要我们自己来写。此时,如果你每一个组件里面都去定义方法就显得太low了。

我们需要自己写一个插件,事半功倍!

稍微复习一下


一般来说,我们自己的js通常会写成下面的两种形式:

第一种,声明多个方法。这个做法也叫函数声明,这样做的好处是,声明到全局,你只要引用了它,在页面任意地方都可以使用。但是同样的缺点也很明显,容易引起全局污染,浪费浏览器资源。而且当我方法多的时候,调用起来很不方便。

function ljzfc(){
    var arr = Array.from(arguments);
    return arr.join("");
}
function fgzf (text,fh) {
    return text.split(fh)
}

第二种,这是我们最长使用的声明方式,函数表达式。目的就是加载了这个js以后,当我需要使用的时候,直接调用str.xxx(),就可以返回我需要的内容了。并且,方法封装在变量内部,不会引起全局污染,也符合模块化的规则。

var str = {
    ljzfc:function(){
        var arr = Array.from(arguments);
        return arr.join("");
    },
    fgzf:function(text,fh){
        return text.split(fh)
    }
}

ok,ok。我们接下来,就要把我们自己的方法定义到vue上去使用。

初步尝试


我首先把js放到了项目文件夹中,然后在main.js中引入。


//加载自己的js ----------------------------------------
import myjs from './js/require1.js';
//使用例子
console.log(myjs.str.ljzfc("你","好","吗")); //连接字符串

调用起来是完全没有问题的。

但是,又好像哪里不太对?是的,这样我们仅仅是引入了一个js,并没有把它形成一个js的插件。

我们来看看一个标准的js插件的调用形式:

this.$message('暂无更多教程!');

为什么他这个可以直接从this上面调用???
个人理解他的方法应该是被定义到全局的vue对象上面了,这里的this应该指的就是vue本身!

如果你看过龙哥前面的教程,你应该知道,当我们引入的插件,是一个对象的时候,应该使用:

Vue.use()

use方法,可以把一个符合vue标准的对象加载到vue本体上。

书写规范


首先给我们的main.js下面增加一行。

//加载自己的js ----------------------------------------
import MyPlugin from './js/require1.js';
Vue.use(MyPlugin)

然后打开我们自己的js文件,按照下面的方式书写:

// 第一步:声明一个空对象,这个对象就是我们的插件模块.
var MyPlugin = {};
// 第二步:必须声明这个模块的install方法,vue就是通过这个方法把插件内部的资源定义到自身上的.
MyPlugin.install = function (Vue, options) {
  // 定义到prototype上,以$开头,防止重复定义和污染
  Vue.prototype.$dangyunlong = str;
}

// 我们自己的方法定义在这里
var str = {
    ljzfc:function(){
        var arr = Array.from(arguments);
        return arr.join("");
    },
    fgzf:function(text,fh){
        return text.split(fh)
    },
}

// 最后把我们的插件暴露出去给全局使用
export default MyPlugin;

最后在页面中调用的时候:

console.log("插件打印开始---------------------------");
console.log(this.$dangyunlong.ljzfc("你","好","吗"));

到此我们的插件已经跟vue融为一体!其实插件本身还支持更多参数和写法,请各位同学自行研究吧!

相关文章

  • Vue.js入门教程(十五):如何创建自己的插件

    设计师的效果能不能实现,得看我能不能找到插件 通常,我们不会去接触vue底层的东西,又或者我们突发奇想需要自己创造...

  • vue入门教程

    Vue-cli入门教程 vue-cli是官方发布vue.js项目脚手架,使用vue-cli可以快速创建vue项目 ...

  • grafana使用d3开发panel

    使用d3创建 panel插件 简介 本文讲解如何使用d3创建一个panel插件 如何创建panel插件参考第本系列...

  • nuxt第三方插件引入

    nuxt如何引入插件 plugins 属性使得你可以轻易地为 Nuxt.js 配置使用 Vue.js 插件。ele...

  • Vue.js 2 Cookbook(Vue.js全面入门教程电子

    Vue.js 2 Cookbook(Vue.js全面入门教程电子书免费下载) 更多AngularJS电子书、Rea...

  • Gradle Authoring Tasks

    在入门教程中,您学习了如何创建简单的任务。 稍后您还学习了如何向这些任务添加额外的行为,并学习了如何在任务之间创建...

  • 我的 Chrome 插件集

    我的 Chrome 插件集 Vue.js devtools vue.js的调试工具 一键管理所有扩展 该插件可以快...

  • 如何编写一个jQuery插件

    转自 如何编写jQuery插件 译自 jQuery Plugins / Authoring 创建插件 看来 jQu...

  • vueScroll基于vue的内容滚动条

    介绍: Vuescroll 一个功能强大,有多种模式的基于Vue.js的滚动条插件,它的原理是创建 div 用于包...

  • vue高级用法

    Vue 插件 plugin 1, Vue 插件 plugin 安装 Vue.js 插件。如果插件是一个对象,必须提...

网友评论

    本文标题:Vue.js入门教程(十五):如何创建自己的插件

    本文链接:https://www.haomeiwen.com/subject/pdzsthtx.html