首页 > 其他分享 >vue3 父组件【属性】传值给子组件【props】接收

vue3 父组件【属性】传值给子组件【props】接收

时间:2024-07-04 14:57:41浏览次数:5  
标签:vue vue3 am props 组件 ChildComponent defineProps

 

父组件文件:parentcomponent.vue

子组件文件:childcomponent.vue

  1. 传普通值
  2. 传动态值
  3. 传对象
  4. 传数组
<!-- 父组件 --> <template>    <h1>I am ParentComponent</h1>    <ChildComponent msg="nice"/>   </template> <script setup>    import ChildComponent from './ChildComponent.vue' </script>  

一、传普通值

<!-- 父组件 --> <template>   <h1>I am ParentComponent</h1>   <ChildComponent msg="nice"/> </template> <script setup>   import ChildComponent from './ChildComponent.vue' </script>     <!-- 子组件 --> <template>    <h2>I am ChildComponent</h2>    <p>I want {{ props.msg }} from my Parent.</p> </template> <script setup>    import { defineProps } from 'vue'; const props = defineProps({ msg:String, }) </script>

二、传动态值

<!-- 父组件 --> <template>    <h1>I am ParentComponent</h1>    <ChildComponent :msg="message"/> </template>   <script setup>   import ChildComponent from './ChildComponent.vue'   const message = "动态传值" </script>    

可能会有疑惑,defineProps是什么呢?

它其实就是一个API函数。defineProps 是 Vue 3 中的一个函数,用于定义组件的 props。与 Vue 2 中的 props 配置选项不同,使用 defineProps 函数定义的 props 是只读的响应式对象,它们的值由父组件传递而来,不能被子组件修改。这有助于提高组件的可维护性和可重用性,并减少不必要的副作用。 简单理解:就是用于拿父组件传过来的值,且子组件不能修改!

 

三、传对象

<!-- 父组件 --> <template>    <h1>I am ParentComponent</h1>    <ChildComponent :arrMsg="A"/> </template> <script setup>   import ChildComponent from './ChildComponent.vue'   const A = [      {id:1,name:'Kiangkiang'},      {id:2,name:'Xiaohong'},      {id:3,name:'Xiaoma'}    ] </script>   <!-- 子组件 --> <template>    <h2>I am ChildComponent</h2>    <h3>数组</h3>    <ul v-for="item in props.arrMsg" :key="item.id">    <li>{{ item.id }}-{{ item.name }}</li> </ul> </template> <script setup>    import { defineProps } from 'vue';    const props = defineProps({      arrMsg:Array//接收父组件ParentComponent传过来的数组   }) </script>  

四、传数组

<!-- 父组件 --> <template>    <h1>I am ParentComponent</h1>    <ChildComponent :list="ListMsg"/> </template> <script setup>   import ChildComponent from './ChildComponent.vue'   const ListMsg = {      name:'Xiaoma', age:'18', gender:'Boy',    } </script>
  <!-- 子组件 --> <template>    <h2>I am ChildComponent</h2>    <h3>个人信息</h3> <ul>    <li>{{ props.list.name }}</li>    <li>{{ props.list.age }}</li>    <li>{{ props.list.gender }}</li> </ul> </template> <script setup>    import { defineProps } from 'vue';   const props = defineProps({      list:Object,    }) </script>

 

 

 

标签:vue,vue3,am,props,组件,ChildComponent,defineProps
From: https://www.cnblogs.com/lcaiqin/p/18283867

相关文章

  • VCL界面组件DevExpress VCL v24.1 - 发布全新的矢量主题
    DevExpressVCL是DevExpress公司旗下最老牌的用户界面套包,所包含的控件有:数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验,提供高影响力的业务解决方案,并利用您现有的VCL技能为未来构建下一代应用程序。DevExpressVCLv24.1已于日前正式发布,新版本官......
  • element 手写季度组件
    组件:<template><divclass="time_quarter"><markstyle="position:fixed;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,0);z-index:999;"v-show="showSeason"@click.stop="showSeason=false&q......
  • k8s组件有哪些?
    Kubernetes是谷歌公司一款开源的容器编排管理工具,它的本质是一组服务器集群管理工具,能够在集群的每个节点上运行特定的程序,它的目的是实现资源的管理自动化,主要提供了自我修复,弹性伸缩、服务发现、负载均衡、版本回退、存储编排等功能。1、自我修复:一个容器崩溃,会立......
  • 2.Kubernetes集群架构与组件
    一、Kubernetes组件       1.1控制面板组件(都是在master上面的)               kube-apiserver:对节点以及任务处理的一个相关接口(所有的调用都要经过这个组件调用)               kube-controller-manager:控制器管理器,管理各个类型的......
  • uniapp自定义富文本现实组件(支持查看和收起)
    废话不多说上代码CollapseText.vue<template> <viewv-if="descr"> <scroll-viewclass="collapse-text":style="{maxHeight:computedMaxHeight}"> <!--<slot></slot>--> <rich-text:nodes......
  • 掉了两根头发后,我悟了!vue3的scoped原来是这样避免样式污染(下)
    前言在上一篇掉了两根头发后,我悟了!vue3的scoped原来是这样避免样式污染(上)文章中我们讲了使用scoped后,vue是如何给CSS选择器添加对应的属性选择器[data-v-x]。这篇文章我们来接着讲使用了scoped后,vue是如何给html增加自定义属性data-v-x。注:本文中使用的vue版本为3.4.19,@vitejs/......
  • 深度长文解析SpringWebFlux响应式框架15个核心组件源码
    SpringWebFlux介绍SpringWebFlux是SpringFramework5.0版本引入的一个响应式Web框架,它与SpringMVC并存,提供了一种全新的编程范式,支持异步非阻塞的Web应用开发。WebFlux完全基于响应式编程模型,支持ReactiveStreams规范,可以在诸如Netty、Undertow以及Servlet......
  • vue3+node.js+mysql+electron+express实现用户登录,文章写入删除,全量更新,增量更新,和截
    第一件事情是安装node.js,去官网下,在终端node-v,npm-v有版本号就行了,不必搞环境配置,保姆级别教程,感谢哥有时间。嘻嘻,祝大家开心。1.首先你要创建electron项目打开vscode,新建终端输入代码npminit这个代码是初始化的意思会生成一个文件package.json里面的代码应该是这......
  • 微信小程序-组件样式隔离
    一.isolatedisolated是自定义组件.js的options对象字段styleIsolation的默认值,表示自定义组件和组件使用者之间的样式相互独立,互不影响。写法:options:{//isolated默认值,开启样式隔离,使用者和自定义组件的样式相互不影响styleIsolation:"isolated"}二.app......
  • vue3 toref ref toRow unref等等使用和功能测试
    代码测试js代码constrowData=reactive({nameAbc:'sdfsdf'})console.log(rowData,"rowData")letrowDataValue=toRaw(rowData);console.log(rowDataValue,"rowdatavalue")//toRefs使对象本身转为普通对象,但是子属性全部转为refvalue方式//toRef......