Vue3-17 父子组件使用props传值

文章目录

TypeScript 文档复习

JavaScript 中的数据类型

string 、 number 、 boolean 、 null 、 undefined 、 bigint 、 symbol 、 object

备注:其中 object 包含: Array 、 Function 、 Date ...

注意点: JS 中的这三个构造函数: Number、 String 、 Boolean ,他们只⽤于包装对象,正常开发时,很少去使⽤他们。

TypeScript 中的数据类型

  1. 以上所有
  2. 四个新类型: void 、 never 、 unknown 、 any 、 enum 、 tuple
  3. ⾃定义类型: type 、 interface
    注意点: JS 中的这三个构造函数: Number、 String 、 Boolean ,他们只⽤于包装对象,正常开发时,很少去使⽤他们,在 TS 中也是同理。

导入自定义的对象

如果使用ts,在里面写的是具体的对象名,只能具象导入

如果对象文件命名为index.ts,就可以写导入到文件目录,不用具体到具体的对象名

为什么可以这么做?

这是因为 JavaScript/TypeScript 的模块解析规则,特别是 目录索引文件(index file)​ 的机制:当导入一个目录时,Node.js/TypeScript 会自动查找该目录下的 index.js或 index.ts文件。

编译器解析:

复制代码
查找 @/types
发现 types是一个目录
查找目录下的 index.ts文件
从 index.ts中导入所需内容

好处:

index.ts相当于一个 目录的门面(facade)​ 或 API 入口:

复制代码
隐藏了内部的文件结构
提供了统一的导出接口
让导入语句更简洁
便于内部重构而不影响外部代码

父组件向子组件传值


推荐用reactive的泛型

父组件是数据的提供方,子组件需要接受数据,接收值使用同父组件属性的变量接收

父组件向子组件中传入数据,子组件接收需要用到defineProps,如下接收,接收什么参数,直接视图上用什么参数显示值,缺点是打印不了,而且这个属性不能是ref。

可以使用变量接收这个接收的props,是所有接收值的对象。

js 复制代码
defineProps(['a', 'b'])



可以不接收父组件传过来的属性值;

如果接收了没有传过来的属性值,打印效果如下:值是undefined的。

如果获取接收的值,可以如下console.log(x.a); // 哈哈

组件传值

标签的属性中,不加冒号是字符串,加冒号是js表达式,需要执行。

ref这个属性是特殊的,不需要加冒号就是变量

遍历用v-for,最好加上key,免得混乱,

问题:不加key就是用索引当key了,数据更新的时候容易错乱

子组件接收父组件数据

接收数据并限制类型,这样能防止父组件传递错误的数据

限制参数可传可不传

设置默认值

defineProps 是不用导入的;

defineXX 在Vue3中是宏函数,不用导入直接使用

相关推荐
小圣贤君2 天前
在 Electron 应用中优雅接入 DeepSeek AI:从零到一的完整实践指南
人工智能·electron·vue3·ai写作·deepseek
Sapphire~3 天前
Vue3-14 watch监视对象及对象属性,watchEffect
vue3
技术宅星云3 天前
7. vue3-element-admin 二次开发图文教程
vue3·element-admin·后端开箱即用前端框架
Sheldon一蓑烟雨任平生4 天前
Sass 星空(Sass + keyframes 实现星空动画)
前端·css·vue3·sass·keyframes
Irene19914 天前
Vue 3 中移除了 $on、$off 和 $once 方法(附:Composables 组合式函数 使用详解)
vue3
Sapphire~5 天前
Vue3-15 html标签和组件上的ref属性 + 接口泛型
vue3
Irene19916 天前
Vue 3 中使用 Mitt 事件总线
vue3·mitt
咸甜适中6 天前
双色球、大乐透兑奖分析小程序(rust_Tauri + Vue3 + sqlite)
爬虫·rust·sqlite·vue3·tauri2
Sapphire~8 天前
Vue3-012 vue2与vue3中的computed
vue3