当前位置: 首页 > news >正文

vxe-弹窗初始化激活选中Vxe-Table表格中第一行input输入框

1.实现效果

2.Modal弹窗的渲染过程

一、Vue组件的生命周期

Vue组件从创建到销毁会经历一系列的生命周期钩子,这些钩子为开发者提供了在不同阶段插入自定义逻辑的机会。在Modal弹窗的上下文中,这些生命周期钩子同样适用。

  1. beforeCreate:组件实例初始化之后,数据观测和事件配置之前被调用。此时Modal弹窗的模板和数据都还未被处理。

  2. created:组件实例创建完成后被调用。此时数据已经初始化,但还没有开始DOM编译和挂载。对于Modal弹窗来说,这意味着其数据已经就绪,但弹窗本身还未渲染到页面上。

  3. beforeMount:组件挂载之前被调用,此时组件的模板已经编译完成,但尚未挂载到页面上。对于Modal弹窗,这意味着其HTML结构已经准备好,但还未显示。

  4. mounted:组件挂载完成后被调用,此时组件已经完全被渲染到页面中。对于Modal弹窗,这表示弹窗已经显示在用户面前。

二、Modal弹窗的渲染过程
  1. 初始化:当Vue实例被创建时,Modal弹窗(作为Vue组件)也会相应地被初始化。这包括数据的初始化、模板的编译等。

  2. 挂载:在mounted生命周期钩子被调用时,Modal弹窗的虚拟DOM会被渲染成真实的DOM,并挂载到页面的指定位置(通常是某个容器元素内)。

  3. 显示与隐藏:Modal弹窗的显示与隐藏通常通过改变其CSS样式(如display属性)或Vue的v-ifv-show指令来实现。这些操作可以在Vue的方法中定义,并通过事件或计算属性来触发。

三、与页面渲染的顺序关系
  1. 页面渲染:Vue页面渲染通常遵循Vue组件的生命周期顺序,从根组件开始,逐级向下渲染子组件。

  2. Modal弹窗的渲染时机:Modal弹窗作为页面上的一个组件,其渲染时机取决于它在页面组件树中的位置以及相关的逻辑控制。如果Modal弹窗是页面组件的一个子组件,那么它将在页面组件挂载之后(即页面渲染的一部分)进行渲染

  3. 动态渲染:如果Modal弹窗的显示是基于某些条件或用户交互的(如点击按钮后显示),那么它的渲染将发生在这些条件满足或用户交互发生时。此时,Vue会重新渲染相关的组件部分,包括Modal弹窗。

3.具体实现 

3.1 父组件

v-if判断 销毁与创建弹窗的dom,避免子组件弹窗在页面挂载后弹窗也进行渲染

<ReportDetail ref="Detail" v-if="detailVisible" :visible="detailVisible" @Detail="Detail" ></ReportDetail>

使用异步执行延迟回调 

 Detailr(row) {this.detailVisible = truethis.$nextTick(() => {this.$refs.Detail.openDetail(row,.........)});},
3.2 子组件

 表格内设置使用 通过判断是否第一行 default 默认展示 ref进行标记vxe-input输入框 

表格其余行启用 edit 编辑  表头编辑模式开启属性

:edit-config="{trigger: 'click', mode: 'cell'}"
<vxe-column field="detail" title="说明" min-width="100"><template #default="{ row ,rowIndex }"><span v-if="rowIndex!=0"> {{row.detail}}</span>
<vxe-input ref="inputRef" v-if="rowIndex==0"  v-model="row.detail" type="text"></vxe-input></template><template #edit="{ row }"><vxe-input v-model="row.detail" type="text"></vxe-input></template>
</vxe-column>

挂载到mounted中 设置0.5秒延时 ,等待vxe-table内表格渲染完成再利用input焦点聚集激活focus() 

 mounted() {setTimeout(() => {  this.$refs.inputRef.focus();}, 500);},

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • debian 更新源
  • Spring Boot集成SFTP快速入门Demo
  • 独立站外链如何影响搜索引擎排名?
  • AI算法17-贝叶斯岭回归算法Bayesian Ridge Regression | BRR
  • C/C++ json库
  • 如何在电脑上演示手机上APP,远程排查移动端app问题
  • C#数字医学影像系统(RIS/PACS)源码,Oracle数据库,C/S架构,运行稳定
  • 入坑树莓派(2)——树莓派4B与手机蓝牙通信
  • vue使用了代理跨域,部署上线,使用Nginx配置出现问题,访问不到后端接口
  • 农业旅游与乡村旅游:融合绿色田野与诗意远方的经济新篇章
  • Zookeeper是什么,为什么要用,怎么用?
  • 探索数据的内在结构:使用Scikit-Learn确定聚类数
  • SpringBoot 项目 pom.xml 中 设置 Docker Maven 插件
  • 解决:Linux上SVN 1.12版本以上无法直接存储明文密码
  • 基于ffmepg的视频剪辑
  • 网络传输文件的问题
  • const let
  • Elasticsearch 参考指南(升级前重新索引)
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Laravel Mix运行时关于es2015报错解决方案
  • MQ框架的比较
  • Mysql数据库的条件查询语句
  • underscore源码剖析之整体架构
  • windows下mongoDB的环境配置
  • WordPress 获取当前文章下的所有附件/获取指定ID文章的附件(图片、文件、视频)...
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 记录:CentOS7.2配置LNMP环境记录
  • 简单数学运算程序(不定期更新)
  • 设计模式 开闭原则
  • 算法系列——算法入门之递归分而治之思想的实现
  • 跳前端坑前,先看看这个!!
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • # 利刃出鞘_Tomcat 核心原理解析(七)
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • (4)Elastix图像配准:3D图像
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (poj1.2.1)1970(筛选法模拟)
  • (poj1.3.2)1791(构造法模拟)
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (回溯) LeetCode 46. 全排列
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (原创) cocos2dx使用Curl连接网络(客户端)
  • (源码分析)springsecurity认证授权
  • .bat文件调用java类的main方法
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .Net Core中Quartz的使用方法
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .net 受管制代码
  • .net 提取注释生成API文档 帮助文档
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • .NET开源项目介绍及资源推荐:数据持久层 (微软MVP写作)