Vue 组件传值的十种方法 敲黑板~~~~~敲黑板~~~~ 是十种

2023-11-21 22:59

本文主要是介绍Vue 组件传值的十种方法 敲黑板~~~~~敲黑板~~~~ 是十种,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 父向子传值

  • 父组件里子组件标签上绑定自定义属性,子组件通过props接受
    代码实例

在这里插入图片描述

2.子向父传值

  • 父组件:在子组件标签上定义一个事件
  • 子组件:在子组件通过$emit调用父组件定义的事件,并携带参数。

代码示例:在这里插入图片描述

3.eventBus 事件总线

  • 可以通过EventBus进行信息的发布于订阅。(创建一个能够访问到事件总线)

3.1 在vueprototype原型上挂载是事件总线(main.js文件中)。

Vue.prototype.$eventBus = new Vue()

3.2 发送数据

this.$eventBus.$emit('事件名', 传递参数)

3.3 接受数据

    this.$eventBus.$on('事件名', (接受参数) => {//进行操作})

代码实例:

要求:将Father.vue里面的数据传到Grandson.vue里面

在这里插入图片描述

4. ref

通过添加ref和$refs配合,也可以很方便的获取子组件,访问调用子组件的属性即方法。

用refs指定子组件: <子组件 ref=“ref名”/>
通过$refs访问子组件: this.$refs

代码实例:

<template><div>父组件<Son1 ref="son1"/><Son2 ref="son2"/></div>
</template>
<script>
import Son1 from './Son1.vue'
import Son2 from './Son2.vue'export default {components: {Son1,Son2},mounted () {console.log(this.$refs.son1)}
}
</script>

$refs可以获取到整个子组件。并且可以对齐进行操作
在这里插入图片描述

5. $children 获取子组件集合

  • 父组件中,$children返回的是一个组件集合,如果你清楚子组件的顺序,你也可以使用下标操作。

语法:

this.$children

代码实例:

<template><div>父组件<Son1/><Son2/></div>
</template>
<script>
import Son1 from './Son1.vue'
import Son2 from './Son2.vue'export default {components: {Son1,Son2},mounted () {console.log(this.$children) }
}
</script>

获取结果:

  • 将子组件获取放入一个数据中,可以通过索引获取(this.$children[]
    在这里插入图片描述

6.$parent获取父组件。

  • 子组件中$parent直接指向父组件。

语法:

this.$parent

代码实例:
子组件中

<template><div>子组件</div>
</template>
<script>
export default {mounted () {console.log(this.$parent)}
}
</script>

获取结果:
在这里插入图片描述

总结:ref,$children,$parent

  • 三种办法获取的是类似的
  • 一般是用ref和$parent获取是相对比较准确的比较多获取比较准确
  • 注意使用$children要注意,通过下标获取,一旦组件下标发生改变就会出问题

7.provide与inject 子孙组件传值

  • provide和injiect是成对出现的
  • 作用:用于父组件像子孙组件出传递数据

使用方法:

  • provide在父组件中,返回要传给下级的数据
  • inject在需要使用这个数据的子孙组价中注入数据。(不论组件层级有多深)
  • inject使用方法与props一样,但是他们两个不冲突,也就是说两个可以同时使用。

在这里插入图片描述

8.$attrs 父给孙进行传值

  • $attrs 就像是一个语法糖,原理还是父传给子,子再传给孙
  • $attrs 优化了在子组件中的传递的步骤
  • $attrs 一般搭配 $listeners使用
    在这里插入图片描述
    代码实例:
    在这里插入图片描述

9. $listeners 孙级组件像父级以上传值

  • $listeners 做法极其相似,$listeners是通过触发事件,传的是函数
    在这里插入图片描述
    代码实例:
    在这里插入图片描述

10.Vuex

Vuex是专为Vue.js应用程序开发的状态管理模块,它采用了集中式储存管理应用的所有组件的状态。

Vuex有两个特点:

  1. Vuex的数据是响应式的,当一个组件改变了Vue的中的转态,其他用到此状态的组件都会跟新
  2. 不能直接改变store里面的状态,必须通过store中的commit来提交修改,mutation里面修改

Vuex的五个核心分别是:

  1. states:储存状态。
  2. mutations:修改数据。
  3. getters:计算属性,对数据进行进一步技术并返回
  4. actions:可以包含任意异步操作,actions里面一定会有commit属性调用mutations里 面的方法
  5. models:模块拆分

Vuex这里我就不做详细解释了,之前写过一篇Vuex的帖子>>>>>>>>>>>Vuex

这篇关于Vue 组件传值的十种方法 敲黑板~~~~~敲黑板~~~~ 是十种的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/405683

相关文章

MyBatis与其使用方法示例详解

《MyBatis与其使用方法示例详解》MyBatis是一个支持自定义SQL的持久层框架,通过XML文件实现SQL配置和数据映射,简化了JDBC代码的编写,本文给大家介绍MyBatis与其使用方法讲解,... 目录ORM缺优分析MyBATisMyBatis的工作流程MyBatis的基本使用环境准备MyBati

Nginx中location实现多条件匹配的方法详解

《Nginx中location实现多条件匹配的方法详解》在Nginx中,location指令用于匹配请求的URI,虽然location本身是基于单一匹配规则的,但可以通过多种方式实现多个条件的匹配逻辑... 目录1. 概述2. 实现多条件匹配的方式2.1 使用多个 location 块2.2 使用正则表达式

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

Springboot控制反转与Bean对象的方法

《Springboot控制反转与Bean对象的方法》文章介绍了SpringBoot中的控制反转(IoC)概念,描述了IoC容器如何管理Bean的生命周期和依赖关系,它详细讲解了Bean的注册过程,包括... 目录1 控制反转1.1 什么是控制反转1.2 SpringBoot中的控制反转2 Ioc容器对Bea

Vue中动态权限到按钮的完整实现方案详解

《Vue中动态权限到按钮的完整实现方案详解》这篇文章主要为大家详细介绍了Vue如何在现有方案的基础上加入对路由的增、删、改、查权限控制,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、数据库设计扩展1.1 修改路由表(routes)1.2 修改角色与路由权限表(role_routes)二、后端接口设计

C++实现回文串判断的两种高效方法

《C++实现回文串判断的两种高效方法》文章介绍了两种判断回文串的方法:解法一通过创建新字符串来处理,解法二在原字符串上直接筛选判断,两种方法都使用了双指针法,文中通过代码示例讲解的非常详细,需要的朋友... 目录一、问题描述示例二、解法一:将字母数字连接到新的 string思路代码实现代码解释复杂度分析三、

mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespace id不一致处理

《mysql8.0无备份通过idb文件恢复数据的方法、idb文件修复和tablespaceid不一致处理》文章描述了公司服务器断电后数据库故障的过程,作者通过查看错误日志、重新初始化数据目录、恢复备... 周末突然接到一位一年多没联系的妹妹打来电话,“刘哥,快来救救我”,我脑海瞬间冒出妙瓦底,电信火苲马扁.

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Spring Boot 中正确地在异步线程中使用 HttpServletRequest的方法

《SpringBoot中正确地在异步线程中使用HttpServletRequest的方法》文章讨论了在SpringBoot中如何在异步线程中正确使用HttpServletRequest的问题,... 目录前言一、问题的来源:为什么异步线程中无法访问 HttpServletRequest?1. 请求上下文与线

解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题

《解读为什么@Autowired在属性上被警告,在setter方法上不被警告问题》在Spring开发中,@Autowired注解常用于实现依赖注入,它可以应用于类的属性、构造器或setter方法上,然... 目录1. 为什么 @Autowired 在属性上被警告?1.1 隐式依赖注入1.2 IDE 的警告: