vue3的provide

这篇具有很好参考价值的文章主要介绍了vue3的provide。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

provide 和 inject 通常成对一起使用,使一个祖先组件作为其后代组件的依赖注入方,无论这个组件的层级有多深都可以注入成功,只要他们处于同一条组件链上。

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

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

父组件

<template>
  <div>
    {{msg}}
    <A></A>
  </div>
 
</template>
<script  setup  lang="ts">
import { provide, ref } from 'vue'
let msg=ref('hello')
provide('msg',ref(msg))
</script>
<style lang="scss" scoped>
div{
  width: 4rem;
  height: 4rem;
  background-color: red;
}
</style>

子组件

<template>
    <div class="about">
      A

      <B></B>
    </div>
  </template>
  <script  setup  lang="ts">
  </script>
  <style lang="scss" scoped>
    .about{
      width: 2rem;
      height: 2rem;
      background-color: rgb(39, 168, 45);
    }
    </style>

B组件

inject如果在注入一个值时不要求必须有提供者,那么我们应该声明一个默认值 

<template>
  <button @click="change">点击</button>
    <div class="abouts">
      {{msg}}
    </div>
  </template>
  <script  setup  lang="ts">
import { inject, Ref,ref} from 'vue';

  const msg=inject<Ref<string>>('msg',ref('bai'))
  const change=()=>{
    msg.value='hi'
  }
  </script>

<style lang="scss" scoped>
  .abouts{
    width: 2rem;
    height: 2rem;
    background-color: rgb(53, 47, 233);
  }
  </style>

组件通信

vue2通信

props,emit:实现父子组件,子父组件,兄弟组件通信

自定义事件:实现子父组件通信

全局事件总线:实现任意组件通信

vuex:集中状态管理器,实现任意组件通信

ref:父组件获取子组件实例,获取子组件的响应数据及方法

slot:插槽,实现父子组件通信

vue3通信

props

实现父子组件通信,只读

emit

实现子组件传值给父组件

mitt

v-model

useAttrs

ref和$parent

provide和inject

pinia

slot文章来源地址https://www.toymoban.com/news/detail-686421.html

到了这里,关于vue3的provide的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue3 关于 provide、inject 的用法

    前言: 在前端项目中牵扯的最多的莫过于组件之间的传值了,除了最最常用的 props 和 emit ,其实在 Vue 中还额外提供了另外几种方法。今天分享一种组件之间通信的方法。 先别着急考虑标题这个 api 的含义。在这里我先动手写一个比较常见的场景。 所对应的组件内部代码比

    2024年02月06日
    浏览(38)
  • vue3中的provide/inject(提供/注入)

    在说 provide/inject 先说一下 prop逐级穿透问题 。 通常我们从父组件向子组件传递数据时,会用到 props 。对于只需要传递一层或二层时还行,假如需要传递多层嵌套的组件,此时一级一级传递数据就会很繁琐,不利于编码,因此产生了 provide/inject ,从而解决此类问题。 有了

    2024年02月11日
    浏览(43)
  • 【WebSocket项目实战】聊天室(前端vue3、后端spring框架)

    最近我学习了WebSocket,为了更好地掌握这一技术,我决定通过做一个项目来巩固学习成果。在这个项目中,我将使用JavaScript和WebSocket来实现实时通信,让客户端和服务器端能够实时地传递和接收数据。通过这个项目,我希望能够更深入地了解WebSocket的工作原理,并且能够在实

    2024年02月04日
    浏览(47)
  • vue3-provide和inject

    1.作用场景: 顶层组件向任意的底层组件传递数据和方法,实现跨层组件通信 2.跨层传递普通数据 1.顶层组件通过provide函数提供数据 2.底层组件通过inject函数获取数据 顶层组件 底层组件 3.跨层传递响应数据 顶层组件 底层组件 4.跨层传递方法 顶层组件可以向底层组件传递方

    2024年01月19日
    浏览(46)
  • 前端2023最全面试题(javaScript、typeScript、vue2、vue3、html、css、uniapp、webpack、vite、react)

    答案:JavaScript中的闭包是一种函数,它有权访问其词法环境的变量和其它函数。这意味着,即使其包含它的函数已经执行完毕,其词法环境仍然存在,因此可以访问其作用域内的变量。 答案:回调函数是在某个特定事件之后执行的函数。在JavaScript中,通常使用回调函数来处

    2024年02月06日
    浏览(62)
  • vue中的provide/inject你知道吗(vue2、vue3)?

    昨天看一个项目代码看到了provide,但是学习的时候也没看到,看了官网才知道vue还有这个API。多数情况下,provide会和inject一起使用,又叫“依赖注入”。 “依赖注入”主要是解决父子组件传值“props逐级传递”问题。 所以,provide/inject的作用就是组件间的传值。 1.provide pr

    2024年02月08日
    浏览(47)
  • VueUse 是怎么封装Vue3 Provide/Inject 的?

    Provide 和 Inject 可以解决 Prop 逐级透传问题。注入值类型不会使注入保持响应性,但注入一个响应式对象,仍然有响应式的效果。 Provide 的问题是无法追踪数据的来源,在任意层级都能访问导致数据追踪比较困难,不知道是哪一个层级声明了这个或者不知道哪一层级或若干个层

    2024年02月03日
    浏览(41)
  • 【vue3】vue3的三种写法(附带provide/inject、toRefs说明、ref,reactive的区别)

    写法一(vue3的写法) toRefs定义: toRefs可以将对象(只能接收rective对象)中的属性变成响应式。 正常reactive对象数据也是响应式的,如果用toRefs解构出去会更加方便。 toRefs什么时候用? 数据量如果很多, 我们一般会用解构来简化代码, 那么在vue3 中如果使用对象的解构,

    2024年02月13日
    浏览(44)
  • Vue3的组合式API中如何使用provide/inject?

    听说 Vue 3 加入了超多酷炫的新功能,比如组合式 API 等等。今天我们就来聊聊 Vue 3 中的组合式 API,并且如何使用 provide/inject 来搞定它! 首先,我们来了解一下组合式 API 是什么。其实,组合式 API 就是一个用来构建和组合函数的工具,它能让我们的代码更加简洁、可读性更

    2024年02月11日
    浏览(42)
  • vue3 实现简单计数器示例——一个html文件展示vue3的效果

    目的 :作为一个新手开发,我想使用 Vue 3 将代码封装在 HTML 文件中时,进行界面打开展示。 学了一个简单计数器界面展示,代码如下: 在 上述HTML 文件里,包含了文件头标题 title , 接着定义了一个内容 div id=\\\"app\\\" 而后定义了一个内容,包含标题和数字,以及两个按钮的 templa

    2024年01月18日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包