做网站开发有前途么/重庆网站页面优化

做网站开发有前途么,重庆网站页面优化,网站辅导运营与托管公司,东台网站制作🚀 Vue 2 探秘:visible 和 append-to-body 是谁的小秘密?🤔 父组件:identify-list.vue子组件:fake-clue-list.vue 嘿,各位前端探险家!👋 今天我们要在 Vue 2 的代码丛林…

🚀 Vue 2 探秘:visibleappend-to-body 是谁的小秘密?🤔

  • 父组件:identify-list.vue
  • 子组件:fake-clue-list.vue

嘿,各位前端探险家!👋 今天我们要在 Vue 2 的代码丛林里挖宝,目标是两个神秘属性:visibleappend-to-body。它们藏在组件里,像遥控器一样控制对话框的开关和位置。到底是谁定义了它们?它们有啥用?咱们带上放大镜 🔍,一起揭秘吧!✨


🌟 背景:从一个对话框开始

假设你有一个 Vue 2 项目,用的是 Element UI 的 <el-dialog>。代码长这样:

<!-- 父组件 -->
<template><el-dialog :visible="visible" title="识别点"><fake-clue-list :visible.sync="fclVis" @close="onfclClose" /></el-dialog>
</template>
<!-- fake-clue-list.vue 子组件 -->
<template><el-dialog :visible="visible" :append-to-body="true" title="假货线索"><!-- 内容 --></el-dialog>
</template>

点击按钮,子组件的对话框蹦出来,但你突然好奇:visibleappend-to-body 到底是谁定义的?是自己写的,还是框架给的?别急,咱们一步步解剖!🧑‍🔬


🎬 第一幕:visible 的身世之谜

它从哪来?

在父组件中,我们看到 <fake-clue-list :visible.sync="fclVis" />,子组件里是 <el-dialog :visible="visible">。这俩 visible 啥关系?

子组件的定义

打开 fake-clue-list.vue,发现:

export default class extends Vue {@Prop({ default: false }) private visible!: boolean
}
  • @Propvisible 是子组件用 TypeScript 的 @Prop 装饰器定义的一个 prop,默认值是 false
  • 作用:接收父组件传来的值(fclVis),然后绑定到 <el-dialog>:visible
Element UI 的影子

但等等!<el-dialog>visible 可不是随便起的名字。根据 Element UI 文档:

  • 属性visible
  • 类型Boolean
  • 作用:控制对话框显示与隐藏。

子组件的 visible prop 直接传给了 <el-dialog>,这说明:

  • 直接定义者:是你(或子组件作者),在 FakeClueList 中用 @Prop 声明。
  • 根本来源:Element UI 的 <el-dialog>,它定义了 visible 这个 prop,子组件只是“借用”并传递。

实验验证

为了确认,我试着注释掉 @Prop

// @Prop({ default: false }) private visible!: boolean

结果?控制台炸了:

[Vue warn]: Property or method "visible" is not defined on the instance but referenced during render.

对话框也不弹了!这证明:

  • visibleFakeClueList 自己声明的 prop。
  • 没有它,父组件的 :visible.sync 无处对接,<el-dialog> 也懵了。😵

流程图:visible 的旅程

用 Mermaid 图展示一下:

传递Prop
属性绑定
控制显示
用户操作
事件传递
状态同步
父组件状态: fclVis
FakeClueList组件
el-dialog组件
对话框显示
关闭对话框
更新状态: $emit

🎭 第二幕:append-to-body 的多余冒险

父组件的“热情”

父组件原本是这样的:

<fake-clue-list :visible.sync="fclVis" :append-to-body="true" @close="onfclClose" />

:append-to-body="true" 看起来像是要控制啥,但子组件里呢?

子组件的真相
<el-dialog :visible="visible" :append-to-body="true">
  • 硬编码:子组件直接写死了 :append-to-body="true"
  • Prop 检查:脚本中没有:
    @Prop() private appendToBody!: boolean
    
    也就是说,FakeClueList 根本没定义 append-to-body 作为 prop!
Element UI 的定义

再看 Element UI 文档:

  • 属性append-to-body
  • 类型Boolean
  • 默认值false
  • 作用:决定对话框 DOM 是否追加到 <body>

子组件的 :append-to-body="true" 是给 <el-dialog> 用的,但父组件的 :append-to-body 呢?因为没被子组件接收,它只是个“空气传值”,啥也没干。😂

删除实验

我把父组件的 :append-to-body 删了:

<fake-clue-list :visible.sync="fclVis" @close="onfclClose" />

结果?对话框照样弹出,DOM 依然挂在 <body> 下。为啥?因为子组件的 <el-dialog :append-to-body="true"> 已经全权负责!


🧠 思维导图总结

用 Mermaid 画个思维导图,理清关系:

Vue 2 属性探秘
visible
append-to-body
定义者: FakeClueList
@Prop 声明
来源: Element UI
的 visible
作用: 控制显示
定义者: Element UI
的 append-to-body
父组件传值: 无用
子组件: 写死 true
作用: DOM 追加到 body

🎉 结论与收获

  1. visible

    • 谁定义的:你在 FakeClueList 中用 @Prop 声明。
    • 来源:沿用 Element UI 的 <el-dialog>visible
    • 重要性:没它,对话框开关失灵!
  2. append-to-body

    • 谁定义的:Element UI,在 <el-dialog> 中提供。
    • 你的用法:子组件写死 true,父组件的传值多余。
    • 清理:删掉父组件的 :append-to-body,代码更清爽。

小Tips

  • 想动态控制 append-to-body?在子组件加个 @Prop,别写死。
  • 检查 prop 用没用到,省得像 :append-to-body 这样“白传”。

这次探秘是不是很有趣?😎 下次遇到神秘属性,别忘了带上实验精神,一探到底!有啥想法,评论区聊聊吧!👇

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73391.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++学习之路:从头搞懂配置VScode开发环境的逻辑与步骤

目录 编辑器与IDE基于vscode的C开发环境配置1. 下载vscode、浅尝编译。番外篇 2. 安装插件&#xff0c;赋能编程。3. 各种json文件的作用。c_cpp_properties.jsontask.jsonlaunch.json 总结&&彩蛋 编辑器与IDE 上一篇博客已经介绍过了C程序的一个编译流程&#xff0c;从…

PPT 转高精度图片 API 接口

PPT 转高精度图片 API 接口 文件处理 / 图片处理&#xff0c;将 PPT 文件转换为图片序列。 1. 产品功能 支持将 PPT 文件转换为高质量图片序列&#xff1b;支持 .ppt 和 .pptx 格式&#xff1b;保持原始 PPT 的布局和样式&#xff1b;转换后的图片支持永久访问&#xff1b;全…

VSCode 抽风之 两个conda环境同时在被激活

出现了神奇的(toolsZCH)(base) 提示符&#xff0c;如下图所示&#xff1a; 原因大概是&#xff1a;conda 环境的双重激活&#xff1a;可能是 conda 环境没有被正确清理或初始化&#xff0c;导致 base 和 toolsZCH 同时被激活。 解决办法就是 &#xff1a;conda deactivate 两次…

git | 回退版本 并保存当前修改到stash,在进行整合。[git checkout | git stash 等方法 ]

目录 一些常见命令&#xff1a; git 回退版本 一、临时回退&#xff08;不会修改历史&#xff0c;可随时回到当前版本&#xff09; 方法1&#xff1a;git checkout HEAD~1 问题&#xff1a;处于 detached HEAD 状态下提交的&#xff0c;无法直接 git push ✅ 选项 1&…

如何使用 Postman 进行接口测试?

使用 Postman 这一工具&#xff0c;可以轻松地进行接口测试。以下是一份简单的使用教程&#xff0c;帮助你快速上手。 Postman 接口测试教程&#xff1a;详细步骤及操作技巧

写作软件新体验:让文字创作更高效

一、开篇引入:写作难题的破解之道 在当今信息爆炸的时代,写作成为了我们生活和工作中不可或缺的一部分。然而,面对繁琐的写作任务,我们时常感到力不从心,甚至陷入创作的瓶颈。那么,有没有一款软件能够帮助我们破解这一难题,让文字创作变得更加高效和轻松呢?答案是肯定…

大模型思维链COT:Chain-of-Thought Prompting Elicits Reasoningin Large Language Models

一、TL&#xff1b;DR 探索了COT&#xff08;chain-of-thought prompting&#xff09;通过一系列的中间推理步骤来显著的提升了LLM的复杂推理能力在三个大型语言模型上的实验表明&#xff0c;思维链提示能够提升模型在一系列算术、常识和符号推理任务上的表现解释了一下为什么…

决策树算法详解:从西瓜分类到实战应用

目录 0. 引言 1. 决策树是什么&#xff1f; 1.1 生活中的决策树 1.2 专业版决策树 2. 如何构建决策树&#xff1f; 2.1 关键问题&#xff1a;选哪个特征先判断&#xff1f; 2.1.1 信息熵&#xff08;数据混乱度&#xff09; 2.1.2 信息增益&#xff08;划分后的整洁度提…

超融合服务器是什么

超融合服务器的定义与背景 超融合服务器&#xff08;Hyperconverged Infrastructure, HCI&#xff09;是一种通过软件定义技术&#xff0c;将计算、存储、网络和虚拟化功能整合到单一硬件平台中的IT基础设施解决方案。其核心目标是通过资源的高度集成和统一管理&#xff0c;简…

【网络层协议】NAT技术内网穿透

IP地址数量限制 我们知道&#xff0c;IP地址&#xff08;IPv4&#xff09;是一个4字节32位的整数&#xff0c;那么一共只有2^32也就是接近43亿个IP地址&#xff0c;而TCP/IP协议栈规定&#xff0c;每台主机只能有一个IP地址&#xff0c;这就意味着&#xff0c;一共只有不到43亿…

时隔多年,终于给它换了皮肤,并正式起了名字

时隔多年&#xff0c;终于更新了直播推流软件UI&#xff0c;并正式命名为FlashEncoder。软件仍使用MFC框架&#xff0c;重绘了所有用到的控件&#xff0c;可以有效保证软件性能&#xff0c;也便于后续进一步优化。 下载地址&#xff1a;https://download.csdn.net/download/Xi…

如何避免测试环境不稳定导致的误报

避免测试环境不稳定导致误报的核心方法包括搭建独立稳定的测试环境、使用环境监控工具、建立环境变更管理机制、定期维护更新测试环境以及提升团队的环境管理意识。 其中&#xff0c;搭建独立稳定的测试环境尤为关键。独立的测试环境能有效隔离其他环境的干扰&#xff0c;保证测…

Axure RP9教程 :轮播图(动态面板) | 头部锁定

文章目录 引言I 轮播图操作步骤在画布中添加一个动态面板设置面板状态II 头部锁定将头部区域选中,右键组合或用Ctrl+G快捷键;将组合的头部区域,右键创建动态面板;引言 动态面板的功能十分强大,比如:拥有独立的内部坐标系,有多个状态; Banner的案例中会用到动态面板多个…

Docker入门篇4:查看容器资源、查看容器详细信息、查看容器日志、查看容器内运行的进程

大家好我是木木&#xff0c;在当今快速发展的云计算与云原生时代&#xff0c;容器化技术蓬勃兴起&#xff0c;Docker 作为实现容器化的主流工具之一&#xff0c;为开发者和运维人员带来了极大的便捷 。下面我们一起开始入门第四篇&#xff1a;查看容器资源、查看容器详细信息、…

中学数学几百年重大错误:将无穷多各异假R误为R——两数集相等的必要条件

中学数学几百年重大错误&#xff1a;将无穷多各异假R误为R——两数集相等的必要条件 黄小宁 设集A&#xff5b;x&#xff5d;表A各元均由x代表&#xff0c;相应变量x的变域是A。其余类推。本人多年前公开发表的论文中有定理&#xff1a; h定理&#xff08;两数集相等的必要条…

STM32使用红外避障传感器

1.1 介绍&#xff1a; 该传感器模块对环境光适应能力强&#xff0c;其具有一对红外线发射与接收管&#xff0c;发射管发射出一定频率的红外线&#xff0c;当检测方向遇到障碍物&#xff08;反射面&#xff09;时&#xff0c;红外线反射回来被接收管接收&#xff0c;经过比较器…

python tkinter 开发蓍草占卜系统

1. 项目概述 1.1 简介 蓍草占卜是中国传统的占卜方法&#xff0c;用于演算六十四卦。本系统通过现代编程技术&#xff0c;将传统的蓍草占卜方法数字化&#xff0c;提供一个准确、便捷的占卜工具。 蓍草占卜&#xff0c;作为中国古代的一种传统占卜方法&#xff0c;承载着深厚…

2025-3-25算法打卡

一&#xff0c;走迷宫 1.题目描述&#xff1a; 给定一个 NMNM 的网格迷宫 GG。GG 的每个格子要么是道路&#xff0c;要么是障碍物&#xff08;道路用 11 表示&#xff0c;障碍物用 00 表示&#xff09;。 已知迷宫的入口位置为 (x1,y1)(x1​,y1​)&#xff0c;出口位置为 (x…

ISIS-3 LSDB链路状态数据库同步

上一章我们介绍了ISIS的邻居建立关系以及ISIS的路由器角色有哪些,在不同的网络类型当中建立邻居关系有什么不同,并且以实验案例抓包的形式给大家进一步介绍了建立的过程。 这一章我们来介绍ISIS中是如何实现链路状态数据库同步的,与OSPF的链路状态同步有什么不同,在不同网络类…

Opencv计算机视觉编程攻略-第三节 图像颜色处理

第三节 图像颜色处理 1.颜色比较2.GrabCut分割图像3.色调、饱和度以及亮度 1.颜色比较 主要实现逐像素的颜色比较&#xff0c;其中注意BGR颜色空间不连续&#xff0c;不利于颜色提取和区分&#xff0c;转换到Lab空间&#xff1a; int getColorDistance(const cv::Vec3b& c…