太原网站制作_太原网站建设_太原做网站_秘密武器开发者中心
历史搜索

Vue3 与 Vue2 的Props、全局组件的异同点

游客2025-01-24 09:30:01
目录文章目录
  1. Vue3 Props
  2. props 示例
  3. 如何注册 Vue3 全局组件

Vue3 Props

Props 是任何现代 JS 框架的重要组成部分。在组件之间传递数据的能力是 Vue 项目的基本要素。 Vue3 中,在组件中访问Props的方式与 Vue2 会有所不同。

为什么使用 Props 很重要?

首先,我们要了解什么是 props。 props是可在组件上注册的自定义属性,可让我们将数据从父组件传递到其子组件方式之一。

由于props让我们能够在组件之间共享数据,因此它使我们可以将 Vue 项目分解成更多的模块化组件。

Vue3 与 Vue2 的Props、全局组件的异同点 1

他建议通过 父组件传入子组件一个 Props 来实现。

为什么 Vue3 props 的工作方式与 Vue2 不同?

更改 Vue3 Props 的方式主要的一个原因,使 this 在组件/方法中的含义更清楚。 有时在查看 Vue2 代码时,this所指可能是模棱两可的。

Vue 团队在设计 Vue3 时的一个大目标是使其在大型项目中更具可伸缩性。 其中一部分是将Options API重新设计为Composition API,以实现更好的代码组织。

 

但是通过消除对 this 的大多数引用,而是使用显式的contextprops变量,可以提高大型 Vue 项目的可读性。

如何注册 Vue3 全局组件

现在,我们来看看如何注册 Vue3 全局组件,方便在我们整个项目都能访问。 与我们在 Vue2 中声明它们的方式稍有不同,但也是非常简单。

什么是全局组件

首先,我们要还了解 Vue3 全局组件是什么以及为什么要使用它。

通常,当我们想在 Vue 实例中包含一个组件时,我们会在本地注册它,一般是这样使用:

import PopupWindow from '../components/PopupWindow.vue';

export default {
  components: {
    PopupWindow
  }
}

但是,假设有一个组件,我们知道它会在多个文件中多次使用。 所以在每个文件都需要写一遍上述的代码-尤其是在我们重构了项目或进行某些操作的情况下,就会比较麻烦。

在这种情况下,全局注册组件是有用的,这样就可以在主根 Vue 实例的所有子组件中访问该组件。换句话说,全局注册一个组件意味着我们不必在每个文件中导入它。

Vue2 中全局组件是如何工作的

在 Vue2 中,无论我们在哪里创建 Vue 实例,我们都只需要调用 Vue.component 方法来注册全局组件。

这个方法有两个参数:

  1. 全局组件的名称
  2. 我们的组件本身
import Vue from 'vue'
import PopupWindow from './components/PopupWindow'
import App from './App.vue'

Vue.component('PopupWindow', PopupWindow) // 全局注册,可以在任何地方使用

new Vue({
  render: h => h(App)
}).$mount('#app')

现在,此 PopupWindow 组件可以在此 Vue 实例的所有子级中使用。

那么在 Vue3 中呢?

在 Vue3 中,由于创建 Vue 实例的工作方式略有不同(使用createApp),所以代码略有不同,但理解起来同样简单。

比起从 Vue2 对象中声明全局组件,我们首先必须创建我们的应用程序。然后,可以像以前一样运行相同的.component方法。

import { createApp } from 'vue'
import PopupWindow from './components/PopupWindow'
import App from "./App.vue"

const app = createApp(App)

app.component('PopupWindow', PopupWindow) // 全局注册,可以在任何地方使用

app.mount('#app')
标签:props

本文是由用户"游客"发布,所有内容的版权归原作者所有。没有经过书面许可,任何单位或个人不得以任何形式复制、转载、引用本网站的内容。否则将追究法律责任。

相关专题