Vue 父传子组件传参 defineProps

简介: Vue 父传子组件传参 defineProps

defineProps 属性:用于接收父组件传递过来的数据。

注意:如果 defineProps 接收的参数名,和已有变量名相同,就会造成命名冲突。

语法格式:

// 无限制
const props = defineProps(['参数名', '参数名']);
 
// 限制数据类型
const props = defineProps({
  参数名: String,
  参数名: Number,
});
 
// 限制数据类型、默认值、必填项
const props = defineProps({
  参数名: { type: String, required: true },
  参数名: { type: Number, required: true },
  参数名: { type: String, default: "默认值" },
});

数组写法【无限制】:

一、父组件:通过自定义属性传递参数。

<template>
  <h3>我是父组件</h3>
  <hr />
  <!-- 通过自定义属性传递 name 和 age -->
  <Child :name="info.name" :age="info.age"></Child>
</template>
 
<script setup>
// 引入组件
import Child from '../components/Child';
import { reactive } from 'vue';
let info = reactive({ name: "张三", age: 18 });
</script>

Vue 不允许使用 key、ref 等关键字作为属性名。

二、子组件:使用 defineProps 接收数据。

<template>
  <h3>我是子組件</h3>
  <p>{{ name }} : {{ age }}</p>
</template>
 
<script setup>
// 接收父组件传递的数据
const props = defineProps(['name', 'age']);
</script>

:defineProps 不需要引入,可以直接使用。

三、最终效果。


相关文章
|
5天前
|
JavaScript 前端开发
【vue】iview如何把input输入框和点击输入框之后的边框去掉
【vue】iview如何把input输入框和点击输入框之后的边框去掉
12 0
|
1天前
|
JavaScript 前端开发 IDE
|
4天前
|
监控 JavaScript
Vue中的数据变化监控与响应——深入理解Watchers
Vue中的数据变化监控与响应——深入理解Watchers
|
4天前
|
JavaScript 安全 前端开发
Vue 项目中的权限管理:让页面也学会说“你无权访问!
Vue 项目中的权限管理:让页面也学会说“你无权访问!
13 3
|
4天前
|
JavaScript 前端开发 开发者
Vue的神奇解锁:冒险的开始
Vue的神奇解锁:冒险的开始
5 1
|
5天前
|
JavaScript 前端开发
vue3+ts+element home页面侧边栏+头部组件+路由组件组合页面教程
这是一个Vue.js组件代码示例,展示了带有侧边栏导航和面包屑导航的布局。模板中使用Element Plus组件库,包含可折叠的侧边栏,其中左侧有 Logo 和导航列表,右侧显示更具体的子菜单。`asideDisplay`控制侧边栏宽度。在`script`部分,使用Vue的响应式数据和生命周期钩子初始化路由相关数据,并从localStorage恢复状态。样式部分定义了组件的颜色、尺寸和布局。
13 1
|
6天前
|
资源调度 JavaScript 前端开发
Vue的路由管理:VueRouter的配置和使用
【4月更文挑战第24天】VueRouter是Vue.js的官方路由管理器,用于在单页面应用中管理URL路径与组件的映射。通过安装并引入VueRouter,设置路由规则和创建router实例,可以实现不同路径下显示不同组件。主要组件包括:`&lt;router-link&gt;`用于创建导航链接,`&lt;router-view&gt;`负责渲染当前路由对应的组件。此外,VueRouter还支持编程式导航和各种高级特性,如嵌套路由、路由参数和守卫,以应对复杂路由场景。
|
5天前
|
JavaScript
【vue实战】父子组件互相传值
【vue实战】父子组件互相传值
11 1
|
5天前
|
JavaScript
vue2_引入Ant design vue
vue2_引入Ant design vue
9 0
|
5天前
|
JavaScript
vue知识点
vue知识点
13 4