vue中全局方法和实例方法的区别:1、全局方法通过“Vue.myGlobalMethod”来调用,实例方法通过“this.$myMethod”来调用;2、全局方法是定义在vue下的静态方法,实例方法可以定义在组件的内部。
本教程操作环境:windows10系统、vue2.9.6版,DELL G3电脑。
vue中全局方法和实例方法的区别是什么
在开发中,为了提高重用性,简洁代码,往往需要把代码的公共部分提取出来,形成一个可复用的模块。当代码提取出来形成模块后,要实现所有地方都可以引用,就需要把这些模块设置成全局属性。所以,要实现全局公共方法,我们需要知道以下几个知识点:
怎么设置全局属性;
怎么引用全局属性;
一、设置全局属性
全局属性可以分为:全局变量和全局方法。实现全局变量,常用的手段就是使用vuex (关于vuex 的使用方法这里不详细说明了),还有一种方法就是借助原型属性来实现。下面,我将重点讲一下原型。
二、引用全局属性
在使用Vue时,我们都要写这么一串代码:
var app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } })
上面代码是借助Vue构造函数创建一个Vue对象。
从这可以看出,Vue其实是一个对象。那么我们就可以借助Vue的原型实现对全局属性的引用。首先,我们需要了解以下知识点:
什么是原型?
在js 代码中,我们经常会看到一个属性prototype 。他是构造函数(就是用来构造对象的函数)的属性,用于指向原型对象。那什么是原型对象呢?了解“原型对象”,我们需要把“原型”和“对象”拆开来说明。
先说对象,js 的内建对象有很多,例如:String 、Math 、Object 、Array 等等。
// 声明一个数组对象 const arr = Array();
以上是使用内建对象——数组的构造函数,创建一个数组。
当然,我们也可以设置自定义对象,也就是自己设置一个新的对象。
const obj = {};
以上代码就是设置了一个空对象。
Vue 实例暴露了一些有用的实例属性与方法。这些属性与方法都有前缀 $,以便与代理的数据属性区分
组件树
-
$parent:用来访问组件实例的父实例
-
$root: 用来访问当前组件树的根实例
-
$children:用来访问当前组件实例的直接子组件实例
-
$refs:用来访问v-ref指令的子组件
DOM访问
-
$el:用来挂载当前组件实例的dom元素
-
$els:用来访问$el元素中使用了v-el指令的DOM元素
区别
全局方法,即可以理解为 window. myGlobalMethod 一样,通过 Vue.myGlobalMethod 来调用,就是一个定义在 Vue 下的静态方法而已
实例方法,回想一下 JS 里的类的概念,prototype 原型链的含义,没搞明白的话先去看看这些基础内容。
这里可以这么给你解释,实例方法可以在组件内部,通过 this.$myMethod 来调用
【