首页 > 其他分享 >vue3 在setup 使用provide inject 实现响应式传值

vue3 在setup 使用provide inject 实现响应式传值

时间:2022-09-29 17:37:13浏览次数:80  
标签:provide noticheight setup value inject vue3 组件 传值

provide与inject主要用于从父组件向子组件传递数据。

在2.0我们通常用props接收来自父组件的参数,但是一个要从父子组件传递到孙子组件,这种情况就得从父组件到子组件,再从子组件传到孙子组件一级一级传递下去;引入 provide与inject就不需要一级一级向下传递。而是只需从父组件provide出去,再在需要用的组件里面inject即可。如图

官网

论组件层次结构有多深,父组件都可以作为其所有子组件的依赖提供者。这个特性有两个部分:父组件有一个 ​​provide​​​ 选项来提供数据,子组件有一个 ​​inject​​ 选项来开始使用这些数据。

用法核心:传入一个响应式对象,即可实现响应式传值

点击查看代码
父组件
import {  provide,ref } from 'vue';
   const noticheight = ref();
     function handleCloss(value: any) {
        noticheight.value = 50 + value + 'px';
      }
      function handleOpen(value: any) {
        noticheight.value = 50 + value + 'px !important';
      }
      provide('asideTop', noticheight);
点击查看代码
子组件

import {  inject } from 'vue';
 const top = inject('asideTop');

标签:provide,noticheight,setup,value,inject,vue3,组件,传值
From: https://www.cnblogs.com/zhengzhijian/p/16742342.html

相关文章

  • vue3 Element Plus Icon 图标使用
    1. 没有安装element-plus/icons的,安装命令如下:npminstall@element-plus/icons-vue2. main.js引入(我比较懒,全部引入。): import{createApp}from'vue'im......
  • vue3中element-plus引入ElLoading并修改颜色
    在vue3中引入element-plus的loading跟vue2差别还是有的写法:<scriptsetup>import{ElLoading}from'element-plus'//使用constloading=ref(false)//loading......
  • Vue2,Vue3,React,vue-cli和Vite创建和启动
    vue2-project创建项目vuecreatexxx名字下依赖包npminstall启动项目npmrunserve项目打包npmrunbuildvue3-project创建项目vuecreatexxx名字下依......
  • 使用Oracle的sshUserSetup.sh脚本配置SSH互信
    不管是在Oracle的GRID安装包,还是DB安装包里都有个脚本(sshUserSetup.sh),用于配置机器之间的SSH互信。配置互信,不仅仅在安装RAC需要配置。有时候我们需要配置ssh互信的时候,用......
  • vue2/vue3+eslint文件格式化
    vue+javascript1.设置vscode保存时格式化文件2.打开settings.json3.设置settings.json文件{"editor.codeActionsOnSave":{"source.fixAll.eslint":t......
  • Vue3.0 如何写自定义指令
    背景问:什么是指令?答:指令就是DOM与逻辑行为的媒介,本质就是DOM绑定的独立逻辑行为函数。除了核心功能默认内置的指令(例如v-model和v-show),Vue也允许注册自定义指令。Vu......
  • vue3中inject无法获取provide传递的最新的值
    //爷组件 import{defineComponent,reactive,toRefs,onMounted,provide,computed}from'vue'; conststate=reactive({   tableData:[], });......
  • vue3 ts 类式写法的mixins
    vue-property-decorator混入(mixins)//mixins.tsimport{Vue}from'vue-property-decorator'classMixinsextendsVue{publicname='混入'publicsay......
  • Vue3知识点之数据侦测
    Vue的核心之一就是响应式系统,通过侦测数据的变化,来驱动更新视图。实现可响应对象的方式通过可响应对象,实现对数据的侦测,从而告知外界数据变化。实现可响应对象的方式:ge......
  • vue3脚手架中ts无法识别引入的vue文件,提示找不到xxx.vue模块的解决
    使用vite搭建vue3脚手架的时候,发现main.ts中引入App.vue编辑器会报错,但是不影响代码运行。报错信息:TS2307:Cannotfindmodule'./App.vue'oritscorrespondingtyped......