站长资讯网
最全最丰富的资讯网站

vue中全局方法和实例方法的区别是什么

vue中全局方法和实例方法的区别:1、全局方法通过“Vue.myGlobalMethod”来调用,实例方法通过“this.$myMethod”来调用;2、全局方法是定义在vue下的静态方法,实例方法可以定义在组件的内部。

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 来调用

赞(0)
分享到: 更多 (0)
网站地图   沪ICP备18035694号-2    沪公网安备31011702889846号