Vue privide 和inject 依赖注入的使用详解

yizhihongxing

Vue中,provide和inject是实现依赖注入的两个函数。在组件树中,父组件可以通过provide提供一些数据或方法,子组件可以通过inject来注入这些数据或方法。

在使用provide向下传递时,我们可以把需要传下去的属性或方法放在一个对象中。如下面的例子:

// Parent.vue
<template>
  <div>
    <child :title="title"></child>
  </div>
</template>

<script>
import Child from './Child.vue'

export default {
  components: {
    Child
  },
  provide() {
    return {
      title: '我是标题'
    }
  }
}
</script>

// Child.vue
<template>
  <div>{{ title }}</div>
</template>

<script>
export default {
  inject: ['title']
}
</script>

以上代码中,父组件通过provide向下传递了一个title属性,并提供了一个固定值。在子组件中,我们使用inject注入provide提供的title属性,将其值渲染到模板中。

另一个示例,如下:

// Grandparent.vue
<template>
  <div>
    <parent></parent>
  </div>
</template>

<script>
import Parent from './Parent.vue'

export default {
  components: {
    Parent
  },
  provide() {
    return {
      sayHello: this.sayHello
    }
  },
  methods: {
    sayHello() {
      console.log('Hello from Grandparent component')
    }
  }
}
</script>

// Parent.vue
<template>
  <div>
    <child></child>
  </div>
</template>

<script>
import Child from './Child.vue'

export default {
  components: {
    Child
  },
  inject: ['sayHello']
}
</script>

// Child.vue
<template>
  <button @click="sayHello">Say Hello</button>
</template>

<script>
export default {
  inject: ['sayHello']
}
</script>

以上代码中,我们提供了一个sayHello方法, 并向下传递了该方法。 在Child.vue中,我们注入了该方法,并在按钮上添加了事件,以响应按钮的点击事件,并在控制台上输出“Hello from Grandparent component”。

总结一下,Vue中provide和inject是实现依赖注入的两个函数,可以在一个父组件上提供数据或方法,然后在子组件中通过inject注入使用。这种方式可以帮助我们在父子组件之间完成数据或方法的传递和共享,使代码更加简洁和易于维护。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue privide 和inject 依赖注入的使用详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue 项目中遇到的跨域问题及解决方法(后台php)

    下面给出解决Vue项目中跨域问题的攻略。 1. 跨域问题的背景 在Vue项目中,由于前端代码和后端接口的部署位置不同,涉及到跨域访问的问题。如果没有任何处理,就会出现浏览器的同源策略限制,无法访问到后端接口。因此,需要对跨域问题进行处理。 2. 解决跨域问题的方法 2.1. 后端设置允许跨域访问 后端通过设置http响应头的内容,告知浏览器允许Vue项目的跨…

    Vue 2023年5月28日
    00
  • 一文教会你如何运行vue项目

    一文教会你如何运行Vue项目的完整攻略 如果你是一位Vue开发者,那么运行Vue项目应该是你每天都会做的事情之一。而要运行Vue项目,你需要了解Vue的环境和插件,才能保证项目正常运行。在这篇文章中,我将为您提供一个完整的攻略,以帮助您运行您的Vue项目。 步骤1:安装Node.js Node.js是一种流行的JavaScript运行时环境,可用于构建基于服…

    Vue 2023年5月27日
    00
  • Vue简介、引入、命令式与声明式编程详解

    Vue简介 Vue是一款渐进式的JavaScript框架,由尤雨溪开发。Vue的目标是通过更简单、更快速的方式来构建用户界面,在增强web应用开发效率、降低技术人员的学习成本、并确保高效的性能方面表现出色。 Vue特点: 轻量级框架,代码量小,执行效率高 易于学习和使用,拥有清晰的文档和注重开发体验的社区 渐进式框架,可以逐步使用, 或集成到其他系统中使用 …

    Vue 2023年5月27日
    00
  • Ant design vue中的联动选择取消操作

    Ant Design Vue中提供了一种很方便的方法实现联动选择和取消操作。这种方法主要是基于Checkbox.Group和Checkbox组件。接下来我们详细讲解如何实现这种联动选择和取消操作。 步骤: 1. 创建一个Checkbox.Group组件和几个Checkbox组件。 示例代码: <template> <div> <…

    Vue 2023年5月27日
    00
  • vue实现商城上货组件简易版

    下面我将为你详细讲解“Vue实现商城上货组件简易版”的完整攻略,包含以下几个步骤: 一、设计组件结构 在Vue中设计组件有以下几个要点: 1. 组件的数据 组件必须拥有数据,这些数据可以通过props传递来自父组件的数据,也可以通过data()方法定义组件自身的数据。 2. 组件的模板 Vue使用HTML模板作为组件的呈现形式。 3. 组件的方法 Vue组件…

    Vue 2023年5月28日
    00
  • 配置一个vue3.0项目的完整步骤

    下面是配置一个Vue3.0项目的完整步骤: 步骤一:安装Vue CLI 在配置一个Vue 3.0项目之前,首先需要安装Vue CLI。Vue CLI是Vue.js 官方脚手架工具,可以帮助我们快速地搭建Vue项目。以下是安装Vue CLI的命令: npm install -g @vue/cli 步骤二:创建一个新的Vue项目 使用Vue CLI创建Vue项目…

    Vue 2023年5月27日
    00
  • vue3安装配置sass的详细步骤

    请按照以下步骤来安装配置Sass: 安装Vue CLI Vue CLI是一个官方提供的基于webpack的脚手架。在项目中使用它可以帮助我们自动化构建、配置开发环境和打包等等。下面是安装Vue CLI的命令: npm install -g @vue/cli 创建Vue 3工程 执行以下命令以创建一个新的 Vue 工程: vue create my-proje…

    Vue 2023年5月28日
    00
  • vue转react入门指南

    感谢您关注我们网站的内容。下面是针对“vue转react入门指南”的完整攻略,希望对您有所帮助。 1. 概述 Vue和React都是当前非常流行的前端框架。如果您熟悉Vue框架,想要学习React框架,可以参考本篇指南。本指南将从以下几个方面帮助您入门React: 认识React框架 学习React的核心概念 手写几个React组件实例 理解React生命周…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部