vue中通过props传值,一定是单向传值吗?如果是引用类型呢?

02. 将参数props限制在一个类型的列表中 的时,图片的是圆角是没有变化的,或者对应的单词拼错了,也是没有圆角的。函数接收一个参数,这个参数就是我们从父组件传进来的值,这里使用includes来判断,传入进来的值是否在我们数组内,如果是,则返回。参数,然后,我们用计算属性根据传入的imgStyle参数给img加圆角样式,默认是没有圆角的,如果传入的。所以,当用户传入是错误的值时,我们封装的组件能够给出提示是很重要的,那怎么判断用户传入的值是在我们的约定中呢?这节课,我们来看下,怎么将一个props限制在一个特定的值的集合中。...... 阅读详情

回答:不一定,如果是基本数据类型,通过props传递的变量,数据是单向传递。如果是引用数据类型,如一个Object对象,则子组件修改值,不需要额外逻辑,也会影响到父组件的值。

  • 通过props传递基本数据类型,数据则单向传递。如下代码,父子组件通过props传递remarks变量值,remarks为String基本数据类型变量,数据则单向传递。
------------------------父组件--------------------------------
<script setup>
import {reactive} from "vue";
import SonItem from "./SonItem.vue";

let  formModel = reactive({
  remarks: 'Hello'
})

</script>

<template>
  <div >
    <p>{{formModel}}</p>
    <SonItem :remarks="formModel.remarks" />
  </div>
</template>
-----------------------子组件-----------------------------------
<template>
  <input type="text" v-model="props.remarks"  >
</template>

<script setup>
let props = defineProps({
  remarks:{
    type: String
  }
});
</script>
  • 通过props传递引用类型Object,数据则相互影响,非单向传递。如下代码,父子组件通过props传递remarks变量值,remarks为String基本数据类型变量,数据则单向传递。
------------------------父组件--------------------------------
<script setup>
import {reactive} from "vue";
import SonItem from "./SonItem.vue";

let  formModel = reactive({
  itemType: {
    name: 'Fruit'
  }
})

</script>

<template>
  <div >
    <p>{{formModel}}</p>
    <SonItem :item-type="formModel.itemType" />
  </div>
</template>
-----------------------子组件-----------------------------------
<template>
  <input type="text" v-model="props.itemType.name"  >
</template>

<script setup>
let props = defineProps({
  itemType:{
    type: Object
  }
});
</script>

拓展

  • js的基本数据类型有
    • Null,只有一个值null,概念上指没有任何对象。
    • Undefined,只有一个值undefined,概念上指没有值。
    • Boolean,有两个值true和false。
    • Number
    • BigInt,表示任意大小的整数。
    • String,文本数据。
    • Symbol,创建全局唯一值,具有唯一性,全局定义唯一;不可性,一旦创建,不可修改;私有性,Symbol类型的键,不能通过for … in等遍历获取。
    • js的引用类型为 Object类型。
  • Symbol 类型的使用场景,
    • 定义对外不暴露的键值,如不希望外部通过Object.keys()方法获取键值,或者,for…in遍历时,用Symbol命名键。
    • 代替常量定义。
    • 定义类中私有属性。
    • 通过Symbol.for()注册或获取一个全局实例。
    • 自定义迭代器。Symbol.iterator指代对象的迭代器,实现自定义迭代器的生成器函数。
      示例代码如下

const ID_NUMBER = Symbol('id number'); //可接受参数
const SET_NUMBER = Symbol();

class Person {
  constructor(name, idNumber) {
    this.name = name;
    this[ID_NUMBER] = idNumber; //定义私有属性,外部通过Object.keys()获取到Person类实例的键只有name
    this[SET_NUMBER] = function(ideNumber){ //定义私有方法,其他js包无法调用该方法
      this[ID_NUMBER] = ideNumber
    }
  }
  getIdNumber(){
    return this[ID_NUMBER]; //外部js,只能通过公共方法,访问私有变量
  }
}
  • 当引用传递时,在子组件中,通过深拷贝的方式,可以切断父子组件中值的相互影响。例如
let itemCopy = JSON.parse(JSON.stringify(props.itemType))
Windows下用Anaconda安装d2l库避坑指南(附PermissionError解决方案) 本文详细介绍了在Windows系统下使用Anaconda安装d2l库的完整指南,特别针对常见的PermissionError问题提供了多种解决方案。从环境准备到库安装,再到VSCode配置和数据路径处理,帮助读者顺利搭建深度学习环境并运行《动手学深度学习》的代码示例。 阅读详情

相关推荐

《详细指南:本地部署Ollama大型模型的完整步骤》

通过本指南,您应该能够成功地在本地部署Ollama大型模型,并开始使用它进行各种AI任务。Ollama的易用性和高性能使其成为研究和开发的理想选择。Ollama是一个高性能的AI模型部署平台,支持在本地轻松部署大型语言模型。本指南将详细介绍如何在本地环境中部署Ollama,并运行一个大型模型。

eclipsercp的博客 3695

[vue] 解决父子组件传值 prop,子组件改变值后父组件的值也会随之改变

当在子组件中改变基本数据类型时,父组件中的值不会改变,但是当改变引用类型数据时,因为父组件和子组件中的 props 保存的引用类型数据的地址时一样的,对应地址的值也一起改变。props 的传递是将数据浅拷贝下来,拷贝的引用数据类型其实指向对一个对象,拷贝在栈中,内容还是指向同一个堆地址,而基本数据类型本身就是在栈中,就会全部拷贝下来。时,子组件是可以改变父组件的值的。时,子组件不能改变父组件的值。基本数据类型存储在栈中。引用数据类型存储在堆中。props 的类型为。props 的类型为。

qq_14993591的博客 2488

AI Agent Harness Engineering 创业PMF验证工具:用户满意度+留存率+业务指标监测表

在AI Agent创业的浪潮中,我们看到了无数产品如雨后春笋般涌现,但最终能够真正找到PMF并存活下来的却寥寥无几。根据CB Insights的数据,创业公司失败的首要原因(占42%)是"没有市场需求"——换句话说,就是没有找到PMF。AI Agent产品由于其特殊性(交互范式的变革、技术复杂度高、用户期望管理困难等),PMF验证变得更加具有挑战性。传统的SaaS产品PMF验证框架虽然有参考价值,但无法完全适用于AI Agent这种新型产品形态。

AI智能探索者的博客 329

vue3中props不会动态更新的问题

在vue3语法糖响应式的模式下,父组件设置子组件的值无法动态更新的原因 1.props对象不是ref对象,需要使用toRefs去给props加一层包装或者用$(对象)去添加响应式

qq_41306452的博客 8982

电价预测的Transformer实战:从注意力机制到超长序列建模

本文深入探讨了Transformer模型在电价预测领域的实战应用,对比了其与LSTM在处理长序列依赖和误差累积问题上的优劣。文章详细解析了自注意力机制的原理,并提供了处理超长序列的位置编码方法、构建专用预测模型的完整PyTorch代码,以及防止信息泄露的关键技巧。通过实战对比,展示了Transformer在并行计算、长距离建模和预测精度上的显著优势,并分享了应对极端波动和提升模型效率的高级优化策略。

f6g7h8i9j的博客 540

【WILEY】wiley期刊投稿详解:从revision到Accepted全流程实例讲解

注意:包括没标注修改位置的word文件和标注了修改位置的word文件。

Everyday try to become better -Kobe Bryant 1万+

Vue3深入组件Props

vue3深入组件props

性感码农在线写笔记 3207

IPD实战指南:如何运用SPAN模型精准定位高潜力市场并优化资源配置

本文是IPD实战指南,详细解析了如何运用SPAN模型进行市场分析与战略决策。文章通过四步实战法,指导企业科学定义细分市场、量化评估吸引力与竞争力,并绘制矩阵以制定精准的资源配置策略,从而跳出红海竞争,将资源聚焦于高潜力市场。

weixin_29306317的博客 73

最佳实践:vue组件引用传值

下述组件传值指引用类型(数组或对象)传值。 准备:单向数据流 所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外变更父级组件的状态,从而导致你的应用的数据流向难以理解。 额外的,每次父级组件发生变更时,子组件中所有的 prop 都将会刷新为最新的值。这意味着你不应该在一个子组件内部改变 prop。如果你这样做了,Vue 会在浏览器的控制台中发出警告。 这个 prop 用来传递一个初始值;这个子组件接下

李刚的学习专栏 1935

从ResNet到EfficientNet:特征金字塔网络(FPN)在不同骨干网中的适配指南

本文深入探讨了特征金字塔网络(FPN)与ResNet、VGG、EfficientNet等主流骨干网络的适配策略。文章详细解析了FPN的核心原理,并针对不同骨干网络的特征提取特性,提供了通道对齐、参数量估算及迁移学习的系统化指南,旨在帮助开发者在目标检测等视觉任务中构建高性能、高效率的模型。

weixin_29047919的博客 220

Opencv全景图像处理实战:柱面与透视展开技术详解

本文详细解析了使用OpenCV实现全景图像处理的两种核心技术:柱面展开与透视展开。通过原理拆解与实战代码演示,指导开发者将360度环绕的鱼眼或球面图像转换为可用的平面视图,适用于街景展示、车载环视、室内测量等计算机视觉应用场景。

weixin_29081163的博客 582

第十九节:带你梳理Vue2: 父组件向子组件传参(props传参)

本章主要用于介绍组件嵌套,以及嵌套形成的父组件向子组件传参.子组件如何通过pops 接收父组件数据, 以及接收数据处理详情

我们专注于分享最实用的编程技术和干货,帮助你提升编程能力,感谢您的支持和关注! 5348

【Clickhouse】Cannot allocate block number in Zookeeper write prefix view location

我有一个问题,我CK集群跑批的时候,replicated表变成只读的了下面是CK的报错和当时ZK的日志。下面是zk报错开始 我认为是写入的时候,压力太大,ZK扛不住了,就按照博客里的建议优化了ZK的参数,现在偶尔还会只读,zk报错都是图里的那种clickhouse的集群是5分片的集群,数据量比较大。每小时批量一次,每次2-10W条数据,字段的话,不到200个字段,使用的 jdbc sink写入。

九师兄 836

Vue中props用法和传值问题

props的基本用法是父组件给子组件传输数据和验证 基本用法: 1.在父组件中的data中定义值 2.在子组件中使用props声明要引用哪个值 3.标签中使用 4.在template模板中,要使用中划线写法;在script脚本中使用小驼峰 props的使用: 1.静态props 静态即传入的值不变化,直接在父组件中定义,子组件中使用 2.动态props 动态即传入的值会变化,父组件中要动态地绑定父组件的数据。 3.props验证 验证传入的props参数的数据规格,如果不符合数据规格则发出警告,注意这个数据

VegetableKCCCC的博客 3万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

vue props 传值

一、子组件需要做的子组件要显式地用 props 选项声明它期待获得的数据props:[data]然后在组件内使用data二、父组件需要做的这个时候需要区分静态传值和静态传值静态在父组件使用子组件标签时   <tem data="haha"></tem>这个时候静态传值就完成了动态在父组件使用子组件标签时<tem v-bind: data="myData"></tem>data(){ return{ myData:"hah

gansilian的专栏 4987

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

vue父子传值之props

单向数据流所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定:父级 prop 的更新会向下流动到子组件中,但是反过来则不行。这样会防止从子组件意外改变父级组件的状态,从而导致你的应用的数据流向难以理解。以上文字来自 Vue官网 今天总结了下Vue实例中props属性的一些常用方法,主要是帮助自己和新人梳理思路,以便在项目和工作中更好的应用这个属性,因能力有限,有什么到不到的地方,...

gavincz的博客 3万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Vue小白教程:props传值

父子组件可以利用pros直接传值,在子组件中定义props,并可规定传值类型,当父组件使用子组件时传入相应参数,即可把父组件的数值传递到子组件中。 本文内容还可对照参考本人博客Vue小白教程:组件传值(一) 父组件App.vue <template> <div id="app"> {{msg}} <hellochange :msgchange=msgdata></hellochange> </div> </templ

我是一只小晔子 1万+

Vue-属性传值Props

vue传值有两种方法: 1、父组件向子组件传值(属性传值) 当数据都在App.vue中时,如下图 需要将App.vue中的值传给User.vue,则需要在两者的契合点上进行绑定,如下图, 在User.vue中需要进行注册(如下图) 2、子组件向父组件传值(事件传值) 1、注册想要子传给父的事件 通过点击上述事件,会触发下图的方法,然后通过注册的事件, 再到父文件...

一棵不断成长的小白菜 5万+

vue-组件传值总结

Vue.js中实现组件间传值的方法有多种,本文章讲述了最常见的几种传值方式的包括了详细讲解和演示示例,在忘记的的时候常来看看即可快速记起

x15514104477的博客 5980

vue打印props的值_关于Vue中props的详解

看一下官方文档:组件实例的作用域是孤立的。这意味着不能 (也不应该) 在子组件的模板内直接引用父组件的数据。父组件的数据需要通过 prop 才能下发到子组件中.也就是props是子组件访问父组件数据的唯一接口。详细一点解释就是:一个组件可以直接在模板里面渲染data里面的数据(双大括号)。子组件不能直接在模板里面渲染父元素的数据。如果子组件想要引用父元素的数据,那么就在prop里面声明一个变量(比...

weixin_42421710的博客 3550

在Vue2 和 Vue3 中 props 用法区别:Vue 中页面之间的传值方法有哪些?

在Vue2 和 Vue3 中 props 用法区别:Vue 中页面之间的传值方法有哪些?🐱🚀 在前端开发中,props 是 Vue 框架中非常常见的一种传值方式,它帮助父组件将数据传递给子组件,极大地简化了组件之间的通信。在 Vue2 和 Vue3 的版本更新中,props 的使用方法有了一些细微的差异。今天,我们就来深入探讨一下 Vue2 和 Vue3 中 props 的用法区别,以及在 Vue 中页面之间的其他传值方法。

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 2870

Vue组件传值(props属性,父到子,子到父,兄弟传值)

Vue props是什么,父传子,子传父,兄弟组件传值,Vue是数据驱动视图更新的框架,平时写业务时,都会把页面不同模块拆分成一个一个vue组件,所以对于vue来说组件间的数据通信非常重要提示以下是本篇文章正文内容,下面案例可供参考父传值子通过props实现子传父通过emit自定义事件实现兄弟传值通过eventBus实现目前暂时总结三种常用的组件传值方法httpshttpshttps。...

cx18333的博客 1万+

uniapp和vue组件之间的传值方法(父子传值,兄弟传值,跨级传值,vuex)

在做vue项目或者uniapp开发微信小程序时,经常会用到组件之间传值,因此想总结记录下。

铁锤妹妹的博客 1万+

vue打印props的值_vue props 传值

一、子组件需要做的子组件要显式地用props选项声明它期待获得的数据props:[data]然后在组件内使用data二、父组件需要做的这个时候需要区分静态传值和静态传值静态在父组件使用子组件标签时这个时候静态传值就完成了动态在父组件使用子组件标签时data(){ return{ myData:"haha" }}注:在传递数字的时候尽量使用静态传值三、props验证有时候我们需要对传递过来的值...

weixin_42244017的博客 1561

vue中修改props传进来的值

众所周知,vue是单向数据流,一般我们也不会在子组件里面修改父组件传进来的值,但总有需要修改的时候。 前段时间一个项目中有遇到上述情况,假设我直接传进来一个list, 当时我直接在里面改了list,但是却惊讶的发现没有报错,以前好像有遇到直接修改抛出错误的,但这次却没有,当时也没有多想,最近空闲下来又想了下,发现自己确实**了(此处省略两字_)。原因如下: 因为我传进来的list是个数组,属于引用...

前端打工人的博客 1万+

Vue 3 Props 全解析:从类型验证、单向数据流到透传 Attributes 处理(附代码)

本文深入解析Vue3组件开发中的Props特性,涵盖基础概念到高级应用。文章首先阐述Props作为父组件向子组件传递数据的核心作用,然后详细讲解三种声明方式:<script setup>语法糖、选项式声明和TypeScript类型注解。重点介绍了Vue3.5+的响应式解构优化及之前版本的替代方案,提供了响应式访问的最佳实践。最后探讨了Props验证与类型检查机制,包括基础类型验证、自定义验证函数及TypeScript集成。通过实际代码示例,帮助开发者掌握Props在组件化开发中的正确使用方法。

深耕 Vue 生态与 JS/TS 技术,聚焦组件封装、响应式原理、TS 类型设计,解析工程化配置与性能优化方案。同时分享 YOLOv8 目标检测实战、AI 大模型面试核心考点,以代码实例拆解技术实现与业务解法。 1692
上一篇: OpenJDK基准测试工具-JMH相关的所有注解
小鸡炖蘑菇Plus版
博客等级 码龄10年 10粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值