方法一:Vue插件

1.概述

作用:满足vue之外的需求,特定场景的需求

比如说,让你在每个单页面组件里,都可以调用某个方法(公共方法),或者共享某个变量等

2.使用方法

【声明插件】- 【写插件】-【注册插件】-【使用插件】

生命插肩和写插件是同时进行的,注册插件到Vue对象中,最后在Vue组件的时候使用写的插件

声明插件

 插件的需求都是公共部分,所以会创建文件夹utils,里面创建一个js文件,基本内容如下:

install的第一个参数Vue表示Vue的实例,也就是Vue对象,第二个参数opt表示的是设置选项,是指在调用这个插件时可以传一个对象。

比如这个对象调用时接受一个参数no,在插件中,我需要将这个no赋值给Vue对象的另一个data,就可以这样

注册插件

注册插件其实就是用import引入后,然后通过Vue.use(插件名),就跟vue-router和vue-resource一样。

例如:我们通常在main.js中引入各种东西,并且组件的根实例也在这里。

通过import引入文件,然后在创建根组件之前,让Vue对象通过use方法注册插件,通过这两步,就可以使用插件了。

3.写插件、使用插件

按照官方文档,写插件有四种方法,示例如下:(链接:https://cn.vuejs.org/v2/guide/plugins.html#ad)

3.1【添加实例方法或属性】

1.核心思想是,通过prototype来添加方法和属性

2.写:

  

3.用:

4.假如添加的是属性:

如:Vue.prototype.no= 1;

会发生什么事情呢?

1.不管是【按值传递类型】还是【按引用传递类型】,该变量都不会被不同组件所共享,更准确的说,假如有A,B两个组件。A里面的no数值改变,B组件里的no数值是不会跟着改变的。

2.    当组件里没有该属性时,调用时,显示的是通过插件获取的值;

  当组件里有该属性时,调用是,显示的是该组件里该属性的值;

  所以,函数也是这样的,组件里的同名函数总是会覆盖插件提供的函数。

3.2【添加全局方法或属性】

1.核心思想:就是给Vue对象添加一个方法或属性。

和3.1区别是,3.1是给组件内部使用的,相当于组件Methods里定义的方法,而3.2是给Vue对象使用的。

例如:有一个方法test(),那么:

  通过3.1添加,是在组件里,通过this.test()来调用

  通过3.2添加,是在外面通过Vue实例,如Vue.test()来调用

2.写:

Vue.test= function (){   alert(2)   }

3.用:

Vue.test()

3.3【注入组件】

1.核心思想:

就像写Vue组件时,那样写,方法名保持一致,其会在执行组件对应的方法名之前执行,或者不需要这种需求,只是简单注入到各个组件methods中

2.写:

【注入给非Vue实例本身就有的方法】:

假如是给比如methods属性的某个方法,例如上图的showBank,若组件中有showBank就不会执行插件中的这个showBank,如果组件中没有才会执行插件中的这个showBank。其实就是同名先执行组件本身中的方法。

3.用:

和正常写在组件内部methods属性里面的方法使用方式一样,注入其实就是和写在内部methods中等同!

3.4【添加全局资源】

和正常方法类似,甚至几乎一样,可以添加【自定义指令】【过滤器】【过渡】等,这里以【过滤器】为例

1.写:

2.用:

{{num | formatTime}}

4.demo示例

版权声明:参考自http://blog.csdn.net/qq20004604

vue抽取公共方法———方法一的更多相关文章

  1. vue 引用公共方法(例子:截取字符串固定字数,其余显示...)

    1.写公共js 2.main.js引入公共js 3.在组件中用this.common.方法名 引用

  2. vue学习笔记:在vue项目里面使用引入公共方法

    首先新建一个文件夹:commonFunction ,然后在里面建立 一个文件common.js 建立好之后,在main.js里面引入这个公共方法 最后是调用这个公共方法 测试一下,我在公共方法里面写了 ...

  3. vue中添加util公共方法&&ES6之import、export

    vue中添加util公共方法&&ES6之import.export https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Re ...

  4. 头像文件上传 方法一:from表单 方法二:ajax

    方法一:from表单 html 设置form表单,内包含头像预览div,内包含上传文件input 设置iframe用来调用函数传参路径 <!--表单提交成功后不跳转处理页面,而是将处理数据返回给 ...

  5. JS数组 二维数组 二维数组的表示 方法一: myarray[ ][ ];方法二:var Myarr = [[0 , 1 , 2 ],[1 , 2 , 3, ]]

    二维数组 一维数组,我们看成一组盒子,每个盒子只能放一个内容. 一维数组的表示: myarray[ ] 二维数组,我们看成一组盒子,不过每个盒子里还可以放多个盒子. 二维数组的表示: myarray[ ...

  6. 3分钟教会你把封装的js公共方法挂载在vue实例原型上

    第一步:首先在src文件夹里面创建一个通用js文件夹,然后在创建的文件夹里面创建一个js文件 第二步:const 一个方法,然后通过export暴露出来(在同一个页面可以写多个方法,和暴露多个方法,在 ...

  7. 千锋教育Vue组件--vue基础的方法

    课程地址: https://ke.qq.com/course/251029#term_id=100295989 <!DOCTYPE html> <html> <head& ...

  8. J2EE项目开发中常用到的公共方法

    在项目IDCM中涉及到多种工单,包括有:服务器|网络设备上下架工单.服务器|网络设备重启工单.服务器光纤网线更换工单.网络设备撤线布线工单.服务器|网络设备替换工单.服务器|网络设备RMA工单.通用原 ...

  9. web开发过程中经常用到的一些公共方法及操作

    进化成为程序猿也有段岁月了,所谓的经验,广度还是依旧,只不过是对于某种功能有了多种实现方式的想法.每天依旧不厌其烦的敲打着代码,每一行代码的回车似乎都有一种似曾相识的感觉.于是乎:粘贴复制,再粘贴再复 ...

随机推荐

  1. 15个开发者最亲睐的Andr​​oid代码编辑器

    如果你希望你的Android设备,如智能手机和平板电脑,在任何时间和任何地方都能够编写代码,那么,不妨看看下面我将介绍的15款Android代码编辑器,它们必将成为你的理想工具. 1.Deuter I ...

  2. TextView超链接

    这里面涉及两个知识点--超链接和跳转.以下进行逐一解说: 1.实现超链接: 1.1形成超链接文本 public static SpannableString getUserlink(String us ...

  3. LeetCode 之 Merge Sorted Array(排序)

    [问题描写叙述] Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array ...

  4. mysql-高级语言语法

    一.注释 从#字符到行尾 从'-- '序列到行尾.两个破折号之后至少要有一个空格符或制表符. 二.设置变量 用户变量的形式为@var_name,其中变量名varname可以有当前字符集的文字数字字符. ...

  5. Centos7+httpd+fastcgi+rails安装

    搭建的环境: centos7 Apache/2.4.6 fastcgi2.4.6 rails4 在安装fastcgi的时候遇到了问题: 问题: .... .. In file included fro ...

  6. python中对单例模式的理解

    class Foo(object): instance = None def __init__(self): pass def process(self): ' @classmethod #版本1单例 ...

  7. 6.CPU调度

    总论:所有的程序都是CPU和I/O等待交替执行 CPU调度器的操作时机 调用CPU调度器的时机,通常发生在 某一进程从执行状态转化为等待状态 某一进程从执行状态转化为就绪状态 某一进程从等待状态转为就 ...

  8. js相关禁止

    遇到网页上有精美图片或者精彩文字想保存时,通常大家都是选中目标后按鼠标右键,在弹出菜单中选择“图片另存为”或“复制”来达到我们的目的.但是,目前有许多网页都屏蔽了鼠标右键,那么用js如何实现禁止鼠标右 ...

  9. 阿里云安装mysql数据库出现2002错误解决办法

    在安装数据库的时候出现了如下错误: 解决办法如下: 1.在bin目录下 输入:kill -s 9 9907 再输入:ps -ef|grep mysql 显示如下: 2.回到lampp目录下,重启数据库 ...

  10. 如何使 nginx 支撑更高并发

    /** * * * * 如何使 nginx 支撑更高的并发? * 原理: * 服务器方面可以从两个方面阐述: * 1.socket 链接方面:因为每次请求都是一次连接,而 nginx 服务器配置方面默 ...