当前位置: 首页 > article >正文

Vue.js组件开发-在setup函数中使用provide

在Vue.js 3的组合式API中,setup函数是组件的初始化逻辑所在地,可以在这里使用provide函数来向组件的后代提供数据或方法。这些数据或方法随后可以在任何后代组件(子组件、孙组件等)中通过inject函数被注入和使用。

步骤:

1‌.导入必要的API‌:

首先,需要从vue包中导入provide函数。

‌2.在setup函数中调用provide‌:

在setup函数内部,调用provide来提供数据或方法。provide函数接受两个参数:一个键(通常是字符串)和你要提供的值。

‌3.在后代组件中使用inject‌:

在后代组件的setup函数中,可以使用inject函数来接收由祖先组件提供的值。inject函数的参数是想要注入的键,它会返回对应的值。

示例:

展示如何在父组件的setup函数中使用provide,并在子组件中使用inject:

‌父组件(ProviderComponent.vue)‌:

<template>
  <div>
    <h1>Provider Component</h1>
    <ChildComponent />
  </div>
</template>

<script>
import { provide, reactive } from 'vue';
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent
  },
  setup() {
    const state = reactive({
      message: 'Hello from Provider!'
    });

    provide('sharedState', state);

    // setup函数通常不返回任何内容,除非需要暴露响应式数据给模板
    // 在这个例子中,我们不需要返回任何内容
  }
};
</script>

子组件(ChildComponent.vue)‌:

<template>
  <div>
    <h2>Child Component</h2>
    <p>{{ sharedState.message }}</p>
  </div>
</template>

<script>
import { inject } from 'vue';

export default {
  setup() {
    const sharedState = inject('sharedState');

    // 返回需要暴露给模板的数据
    return {
      sharedState
    };
  }
};
</script>

说明:

这个例子中,ProviderComponent是父组件,它通过provide函数提供了一个名为sharedState的响应式对象。ChildComponent是子组件,它通过inject函数注入了sharedState,并在模板中使用了它。

注意:provide和inject的键(在这个例子中是'sharedState')在父组件和子组件之间必须匹配。此外,由于sharedState是一个响应式对象,所以当它的内容发生变化时,子组件的视图也会自动更新。


http://www.kler.cn/a/470811.html

相关文章:

  • Spring Boot整合Minio实现文件上传
  • 119.使用AI Agent解决问题:Jenkins build Pipeline时,提示npm ERR! errno FETCH_ERROR
  • C++ 中如何优雅地返回一个递归闭包函数?
  • STM32之CAN通讯(十一)
  • C++二十三种设计模式之迭代器模式
  • atrust异常导致ERR_NETWORK_CHANGED
  • 41.5 nginx拦截prometheus查询请求使用lua脚本做promql的检查替换
  • 少儿编程|基于SSM+vue的少儿编程管理系统的设计与实现(源码+数据库+文档)
  • 云计算中的可用性SLA
  • Flutter 如何编写 Dart CLI应用程序
  • react 封装一个类函数使用方法
  • 【微服务】4、服务保护
  • 在调用 borrowObject 方法时,Apache Commons Pool 会根据连接池的配置触发一系列相关的方法
  • vue.js 插槽-默认插槽
  • 重温设计模式--13、策略模式
  • MYSQL--------SQL 注入简介MySQL SQL Mode 简介
  • WPF 扩展 TabControl 可保存显示的标签页
  • Flutter鸿蒙化 在鸿蒙应用中添加Flutter页面
  • Spring Security(maven项目) 3.0.2.4版本
  • 期末速成C++【大题汇总完】
  • 【工具推荐】XSS 扫描器-XSStrike
  • 基于fMRI数据计算脑脊液(CSF)与全脑BOLD信号的时间耦合分析
  • 进行电商系统的开发
  • 使用 Nginx 轻松处理跨域请求(CORS)
  • 在vue3中根据需要展示特定国家的国旗
  • Postman + Jenkins + Report 集成测试