公告-窝的迁移

这篇博客探讨了在React应用中如何使用`componentDidUpdate`生命周期方法来操作DOM,特别是在更新排班表格时,当某一天设置为休息后单元格变色的实现。作者分享了代码示例,展示了如何在DOM元素上添加和移除特定样式以达到预期效果。此外,还简要回顾了React组件的生命周期及其主要用途。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公告-窝的迁移

杂七杂八的东西,之前从我开始转前端开始一直写在了博客园(R),因为一些原因,断更了很久,现在打算把细化的各种分类写在这边,原来的还会更,但是不会细分。坚持记录…

也见证一下心无旁骛的一段时间,为接下来的日子,可以搬出去,养只猫,哈哈哈哈嗝儿~

​ (好吧,我是水了一条,啦啦啦啦啦~)
在这里插入图片描述

行吧(ノ_ _)ノ

发文助手不让我水(▼ヘ▼#)

重要的公告已经说完了,那接下来谈谈之前碰到的React中操作Dom元素吧

componentDidUpdate()

基于react和antds组件 有这样一个需求 每个月的排班表格中 每一天的格子都可以点进去修改 如果当天的排班被设置成休息 保存成功后 这个格子会变成红色

效果如下
在这里插入图片描述

利用react生命钩子来对DOM进行操作


```javascript
const columsDay = {
          title: n,
          className: (week === '六' || week === '日') ? 'weekendtable' : '',
          key: 'date' + n,
          width: 170,
          children: [
            {
              title: week,
              dataIndex: n < 10 ? 'date0' + n : 'date' + n,
              width: 170,
              key: 'childdate' + n,
              className: (week === '六' || week === '日') ? 'weekendtable' : 'weeks',
              render: (text, record, index) => {
                return (
                  <div style={{ width: '100%', height: '100%' }}
                    className={text.TPROG === 'OFF' ? '**offtable**' : null}
                    onClick={() => {
                      this.toRescind(text, date);
                    }}>
                    <div>{text.TPROG}</div>
                    <div>{text.TTEXT}</div>
                  </div>
                );
              },
            },
          ],
        }

```javascript
// 操作dom改变班次休息单元格背景色
  componentDidUpdate() {
    if (document.getElementsByClassName("offtable")) {
      const offlength = document.getElementsByClassName("offtable").length
      var ol = 0
      while (ol <= offlength) {
        document.getElementsByClassName("offtable")[ol] ? document.getElementsByClassName("offtable")[ol].parentNode.style.background = "#FFF9F9" : '';
        ol++
      }
    }
  }

React生命周期

执行时机:组件创建时(页面加载时)

constructor

render

componmentDidMount

钩子函数触发时机作用
constructor创建组件时最先执行初始化state,为事件处理程序绑定this
render每次组件渲染都会触发渲染UI(注意:不能调用setState)
componmentDidMount组件挂载(完成DOM渲染)后发送网络请求,DOM操作

更新时

render (New props 接收到新的参数)(调用setState())(forceUpdate()强制刷新)

componmentDidUpdate

钩子函数触发时机作用
render每次组件渲染都会触发渲染UI(与挂在阶段是同一render)
componentDidUpdate组件更新(完成DOM渲染)后发送网络请求,DOM操作,注意:如果要setState()必须放在一个if条件中

卸载时

执行时机 组件从页面消失

钩子函数触发时机作用
componmentWillUnmount组件卸载从页面中消失执行清理工作比如清理定时器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花一树

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值