首页 > 其他分享 >20.vue-组件传参(父传子,子传父)

20.vue-组件传参(父传子,子传父)

时间:2024-04-25 15:55:05浏览次数:25  
标签:传参 info vue 20 参数 组件 ChildComponent data

父传子:

父组件向子组件传入一个参数,可以通过 props配置项,让组件接收外部传过来的数据

1)传递数据

这里需要注意,通过 age = "18"的方式,传递进去的数据是字符类型的,通过动态绑定 :age = "26" 的方式,传递进去的数据是整型类型

<!--这里需要注意,:age="26" 代表 v-bind动态绑定,传入的age是int类型-->
<Student name="马铃薯1" :sex="'男'" :age="26"></Student>

<!--这里的 age="18",传入的age是字符串类型-->
<Student name="马铃薯2" sex="男" age="18"></Student>

2)接收数据

第一种方式(只接收)

// props 配置项(开发过程中,用的比较多)
// 简单声明接收
props:["name","sex","age"],

第二种方式(限制类型)

// 接收的同时,对数据进行类型限制
props:{
    name:String,
        sex:String,
        age:Number,
},

 

父传子案例,父组件ClassView.vue,子组件ChildComponent.vue

子组件ChildComponent.vue

<template>
  <div>
    <h1> 子组件从父组件接收到的参数:{{ message }} </h1>
  </div>
</template>

<script>
export default {
  props: ['message']
}
</script>

父组件ClassView.vue

<template>
  <div>
    <h1>班级管理信息</h1>
    <ChildComponent :message="message" />
  </div>
</template>

<script>
import ChildComponent from '@/components/ChildComponent.vue'

export default{
  components: {
    ChildComponent
  },
  data() {
    return {
      message: '111'
    }
  }
}
</script>

<style>

</style>

 

 

子传父:

子组件向父组件传入一个参数,可以通过一个自定义事件向父组件传递参数

1)传递数据

通过一个自定义事件向父组件传递参数

//在子组件中的methods中写
methods:{
    this.$emit('passtofather', this.sonMsg)
}

2)接收数据

通过实现这个自定义事件来接收参数

// html
<son @passtofather="myfn" /> 
// 在父组件中接收参数时,如果代码写在 html 行内,要获取传入的数据可以通过 $event

// js
export default {
    methods: {
        myfn(value) {
            // value 就是子组件传入的参数
        }
    }
}

 

子传父案例,父组件ClassView.vue,子组件ChildComponent.vue

子组件ChildComponent.vue

<template>
  <div>
    <h1> 子组件从父组件接收到的参数:{{ message }} </h1>
  </div>
</template>

<script>
export default {
  props: ['message'],
  mounted() {
    this.info()
  },
  methods: {
    // 子传父,子组件通过this.$emit('info',data)传递数据给父组件
    info() {
      let data = 222;
      this.$emit("info", data);
      console.log("这是 ChildComponent 组件的info方法,传递参数",data)
    }
  }
}
</script>

父组件ClassView.vue

<template>
  <div>
    <h1>班级管理信息</h1>
    <ChildComponent @info="info" :message="message" />
    <h1>父组件从子组件接收到的参数:{{ receive }}</h1>
  </div>
</template>

<script>
import ChildComponent from '@/components/ChildComponent.vue'

export default{
  components: {
    ChildComponent
  },
  data() {
    return {
      message: '111',
      receive: ''
    }
  },
  methods:{
    info(data){
      this.receive = data
      console.log("这是ClassView组件的info方法,接收到的参数",data)
    }
  }
}
</script>

<style>

</style>

 

标签:传参,info,vue,20,参数,组件,ChildComponent,data
From: https://www.cnblogs.com/REN-Murphy/p/18157891

相关文章

  • ubuntu 20安装Visual Studio Code后出现——root权限登录——转载
    VisualStudioCode报错:YouaretryingtostartVisualStudioCodeasasuperuserwhichisn‘t......快乐小炮灰已于2023-11-2519:46:51修改阅读量2.1k收藏10点赞数4分类专栏:linuxC++开发工具IDE文章标签:vscodeide编辑器版权linuxC++开发工具同时被2个......
  • 2023CPCC河南省赛题解+总结
    2023CPCC河南省赛题解+总结比赛链接:https://codeforces.com/gym/104354答题情况:答题情况开题顺序是:A-F-H-K-E-B-G题面链接:https://codeforces.com/gym/104354/attachments/download/20061/statements_2.pdfProblemA.小水獭游河南签到题,队友写的题意:  给你一个字符......
  • G120变频器
    \ ......
  • vue 自动导入unplugin-auto-import
     vue3日常项目中定义变量需要引入ref,reactive等等比较麻烦,可以通过unplugin-auto-import给我们自动引入1、安装npmi-Dunplugin-auto-import2、在vite.config.ts中引入importAutoImportfrom'unplugin-auto-import/vite'并在plugins中配置:exportdefaultdef......
  • 超低功耗三通道低频无线唤醒 ASK 接收芯片DP20RF003
    DP20RF003是一款三通道、超低功耗的ASK接收芯片,可检测30~300KHz范围的LF(低频)载波频率数据并触发唤醒信号,唤醒之后MCU可通过IO实时采集后续接收到的数据,也可以通过SPI或I2C直接从寄存器读取(最多保存8字节数据)。三个独立通道可以配置成不同的唤醒模式,每个通道都具......
  • 如何查看Vue CLI中webpack的默认配置
    这里使用terser-webpack-plugin举例说明,在VueCLI项目中,terser-webpack-plugin 插件的默认配置通常是隐藏且封装的,因为VueCLI会根据项目需求自动配置webpack。如果你想查看terser-webpack-plugin的默认配置,你可以尝试以下方法:通过检查node_modules/terser-webpack-plugin/di......
  • 【征稿】第七届水与环境可持续发展国际会议(ICSDWE 2024)
    会议简介:2024年第七届水与环境可持续发展国际会议(ICSDWE2024)将于2024年8月16日至18日在中国厦门举行。ICSDWE聚焦于水和环境的可持续发展,汇聚了全球范围内的顶尖专家学者,共同探讨水资源管理、水和废水处理、水的可持续发展、环境科学以及环境可持续性等多个领域的最新研究成果和......
  • Vue3 简单登录管理页面Demo
    目录前言项目基础配置新建项目引入组件项目配置Vue项目配置项目基本结构基础页面布局和路由搭建新增页面,简单跳转LoginViewMainViewrouterApp嵌套路由Test[1-4]Layout.vuerouter给个简单的跳转路由守护,重定向,动态路由,路由传值。这里不做展开描述简单登录页面:烂尾了总结前言这里......
  • 【2024-04-24】大家合力
    20:00如果我以一种戴着面具的方式与他人相处,维持一种与内心体验不同的表面的东西,于人于己毫无帮助。                                                 ——卡尔罗杰斯......
  • Hessian矩阵以及在血管增强中的应用&mdash;OpenCV实现【2024年更新】
    有别于广为人知的Sobel、Canny等一阶算法,基于Hessian矩阵能够得到图像二阶结果,这将帮助我们深入分析图像本质。Hessian矩阵在图像处理中有着广泛的应用:其中在图像分割领域,包括边缘检测、纹理分析等;在图像增强领域,包括边缘增强、边缘消除等。本文从Hessian矩阵定义出发,通过清晰简......