本文介绍: Vue3——第十二章(Props

一、Props 声明

二、传递 prop细节

1、Prop 名字格式

2、静态 vs. 动态 Prop

3、传递不同的值类型

4、使用一个对象绑定多个 prop

三、单向数据流

  • 所有的 props 都遵循着单向绑定原则,props 因父组件的更新而变化,自然地将新的状态向下流往子组件,而不会逆向传递。
  • 这避免了子组件意外修改父组件的状态的情况,不然应用数据流将很容易变得混乱而难以理解
  • 另外,每次父组件更新后,所有的子组件中的 props 都会被更新到最新值,这意味着你不应该在子组件中去更改一个 prop。
  • 若你这么做了,Vue 会在控制台上向你抛出警告:
    在这里插入图片描述

1、导致你想要更改一个 prop 的需求通常来源于以下两种场景

2、更改对象 / 数组类型的 props(尽可能避免这样的更改)

  • 对象数组作为 props 被传入时,虽然子组件无法更改 props 绑定,但仍然可以更改对象或数组内部的值。
  • 这是因为 JavaScript 的对象和数组是按引用传递,而对 Vue 来说,禁止这样的改动虽然可能,但有很大的性能损耗,比较得不偿失。
  • 这种更改的主要缺陷是它允许了子组件以某种不明显的方式影响父组件的状态,可能会使数据流在将来变得更难以理解
  • 在最佳实践中,你应该尽可能避免这样的更改,除非父子组件在设计上本来就需要紧密耦合。
  • 在大多数场景下,子组件应该抛出一个事件通知父组件做出改变。

四、Prop 校验

  • Vue 组件可以更细致地声明对传入的 props 的校验要求。
  • 比如我们上面已经看到过的类型声明,如果传入的值不满足类型要求,Vue 会在浏览器控制台中抛出警告来提醒使用者
  • 要声明对 props 的校验,你可以向 defineProps() 宏提供一个带有 props 校验选项的对象,例如:
    在这里插入图片描述
    在这里插入图片描述

一些补充细节


原文地址:https://blog.csdn.net/weixin_44733660/article/details/128653949

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_11899.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注