首页 > 其他分享 >Vue3 依赖注入 provide() inject()

Vue3 依赖注入 provide() inject()

时间:2023-08-29 10:24:53浏览次数:43  
标签:vue provide msg inject Vue3 组件 传递数据

依赖注入就是父组件向后代组件传递数据,可以向子组件传递数据,也可以向孙子组件传递数据。

在父组件中使用provide()函数,向后代传递数据。

在后代组件中使用inject()函数,获取传递过来的数据。

 

provide()

提供一个值,可以被后代组件注入。

inject()

注入一个由祖先组件或整个应用 (通过 app.provide()) 提供的值。

 

src\views\HomeView.vue

<template>
    <div class="home">
        <input type="text" v-model="msg">
        <HelloWorld/>
    </div>
</template>

<script setup>
    import HelloWorld from '@/components/HelloWorld.vue'
    import {provide, ref} from 'vue'

    var msg = ref(1);
    provide('msg', msg)

</script>

src\components\HelloWorld.vue

<template>
	<span>
		<p>接受父组件数据: {{msg}}</p>
	</span>
</template>

<script setup>
    import {inject} from "vue"

	var msg = inject("msg")

</script>

  

 

标签:vue,provide,msg,inject,Vue3,组件,传递数据
From: https://www.cnblogs.com/ooo0/p/17664064.html

相关文章

  • Vue3 watch() 监听
    watch()​侦听一个或多个响应式数据源,并在数据源变化时调用所给的回调函数 <template> <span> <p>{{num}}</p> <p>{{num2}}</p> <button@click="num++">+1</button> <button@click="addNum">+1</button> &......
  • vue3 setup访问子组件的 DOM 元素
    使用setup的情况下这个时候我们无法使用this,注意在setup中setup是封闭的,不会将子组件事件暴露出来,所以要用defineExpose(),将需要在父组件调用的函数暴露出去,子组件代码如下:<template><divref="domRef"><div>哈哈哈哈</div></div></template><scriptsetuplang="t......
  • Vue3 computed() 计算属性
      <template> <span> <p>普通属性:{{num}}</p> <p>计算属性-只读:{{numAdd}}</p> <p>计算属性-可读写:{{numAdd2}}</p> <button@click="numUpdate">修改普通属性</button> <button@click="numAddUpda......
  • vue3 + vite 动态引入不被打包的静态资源
    在开发中,通常会把一些静态资源放在assets文件夹下,但是assets目录下的内容是需要vite编译打包的,所以如果只是引用assets目录下的资源时,使用绝对路径、相对路径均可。但是,在开发中,我们经常会引用一些不被打包的资源,此时该资源是放在public目录下的,那么在引用时,路径的写法如下:不......
  • vue3 路由-导航守卫
    假设用户登录,在地址栏输入了Login,人性化的设计应该自动回到home页面。或者用户输入不存在路由,也应该回到home页面。这个时候需要用到vue-router的导航守卫功能。在我们封装的router.js文件下添加router.beforeEach……constrouter=createRouter({...})router.beforeEach......
  • Vue3 使用Vuex与Vuex-persistedstate
    Vuex与vuex-persistedstateVuex是什么?Vuex是一个用于Vue.js应用程序的状态管理模式。它使得在应用程序中的所有组件之间共享和访问状态变得非常简单。Vuex将应用程序的状态存储在一个单一的存储库中,并且提供了一组用于更改状态的API。这使得状态管理变得更加可预测和易于调试。......
  • vue3同一页面内重复引用同一操作dom的组件产生的问题
    [2023年8月28日12:39:40]vue3同一页面内标签<component>重复引用同一组件,且该组件内使用css选择器进行dom操作导致页面内相同组件发生变化的问题解决记录组件内进行dom操作,需要通过js方法进行选择器的元素获取,但当vue3全部渲染完毕后,页面内有多个id为test9的相同元素,元素选择将......
  • vue3中使用provide/inject
    父组件<template><hello-world/><button@click="changeMessage">按钮</button></template><scriptsetuplang="ts">importHelloWorldfrom"./components/HelloWorld.vue";import{provide,ref......
  • vue3探索——组件通信之v-model父子组件数据同步
    背景再很多场景中,我们可能想在子组件中修改父组件的数据,但事实上,vue不推荐我们这么做,因为数据的修改不容易溯源。Vue2写法在vue2中,我们使用.sync修饰符+自定义事件'update:xxx',来使父子组件数据同步。//父组件<template><div><h2>我是父组件,我有{{money}}¥......
  • Vue3.3 + TS4 ,自主打造媲美 ElementPlus的组件库(16章)
    点击下载:Vue3.3+TS4,自主打造媲美ElementPlus的组件库(16章)提取码:n899 Vue3.3+TS4,自主打造媲美ElementPlus的组件库课程,又名:进阶必学,2023最新,打造媲美ElementPlus的组件库随着Web应用程序的复杂性不断增加,为了提高开发效率和维护性,我们往往需要构建可复用的组件库。Vue作为......