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 不需要引入,可以直接使用。

三、最终效果。


相关文章
|
2天前
|
数据采集 JavaScript 前端开发
Vue框架的优缺点是什么
【7月更文挑战第5天】 Vue框架:组件化开发利于重用与扩展,响应式数据绑定简化状态管理;学习曲线平缓,生态系统丰富,集成便捷,且具性能优化手段。缺点包括社区规模相对小,类型支持不足(Vue 3.x改善),路由和状态管理需额外配置,SEO支持有限。随着发展,部分缺点正被克服。
8 1
|
2天前
|
JavaScript
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
vue3 【提效】自动注册组件 unplugin-vue-components 实用教程
8 1
|
3天前
|
JavaScript
Vue卸载eslint的写法,单独安装eslint,单独卸载eslint
Vue卸载eslint的写法,单独安装eslint,单独卸载eslint
|
3天前
|
JavaScript
青戈大佬安装Vue,无Eslint安装版,vue2安装,vue2无eslint,最简单配置Vue安装资料
青戈大佬安装Vue,无Eslint安装版,vue2安装,vue2无eslint,最简单配置Vue安装资料
|
2天前
|
JavaScript 前端开发 开发工具
如何学习vue框架
【7月更文挑战第5天】 - 先学HTML/CSS/JS基础和前端工程化工具(npm, webpack, Git)。 - 从Vue官方文档学习基础,包括指令、组件、响应式系统。 - 深入研究Vue Router和Vuex,掌握路由管理和状态管理。 - 学习自定义指令和Mixins,优化性能技巧。 - 实战项目练习,加入Vue社区,阅读相关资源,提升技能。 - 关注Vue生态,持续实践和创新,以适应不断发展的框架。
6 0
|
3天前
|
JavaScript
vue3 【实战】封装 “心跳“ 组件
vue3 【实战】封装 “心跳“ 组件
12 0
|
3天前
|
JavaScript 区块链
vue 自定义网页图标 favicon.ico 和 网页标题
vue 自定义网页图标 favicon.ico 和 网页标题
10 1
|
3天前
|
JavaScript
This dependency was not found:* vue/types/umd in ./src/router/index.jsTo install it, you can run
This dependency was not found:* vue/types/umd in ./src/router/index.jsTo install it, you can run
This dependency was not found:* vue/types/umd in ./src/router/index.jsTo install it, you can run
|
4天前
|
存储 JavaScript 数据安全/隐私保护
vue实战——登录【详解】(含自适配全屏背景,记住账号--支持多账号,显隐密码切换,登录状态保持)
vue实战——登录【详解】(含自适配全屏背景,记住账号--支持多账号,显隐密码切换,登录状态保持)
14 1
|
3天前
|
缓存 JavaScript 算法
vue 性能优化
vue 性能优化
12 0