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中是宏函数,不用导入直接使用

相关推荐
赵庆明老师8 天前
vben开发入门6:tsconfig.json
json·vue3·vben
赵庆明老师8 天前
vben开发入门5:vite.config.ts
前端·html·vue3·vben
沙振宇9 天前
【Web】使用Vue3+PlayCanvas开发3D游戏(十二)渲染PCD点云可视化模型
3d·vue3·点云·pcd
是席木木啊12 天前
告别console.log!Vue3项目日志框架选型指南
前端·vue3·日志框架
程序员-南13 天前
解决 Vue3 中 keep-alive 缓存问题的方法
缓存·vue3
qq_120840937114 天前
Three.js 模型加载稳定性实战:从资源失败到可用发布的工程化方案
前端·javascript·vue.js·vue3·three.js
qq_120840937114 天前
Three.js 模型加载与线上稳定性实战:路径、跨域、缓存与降级全链路指南
开发语言·javascript·缓存·vue3
qq_120840937114 天前
Vue3 + Three.js 实战入门:从零搭建可交互3D场景(含模型加载与性能优化)
javascript·3d·vue3·交互
qq_120840937114 天前
Vue3 + Three.js 入门实战:从 0 到 1 搭建可交互的 3D 场景(含模型加载与性能优化)
javascript·3d·vue3·交互·webgl·gltf
曲幽14 天前
Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看
vue3·inject·provide·pinia·v-model·props·mitt·emit