Skip to content

202407

INFO

20240603

刚来部门,需要熟悉业务情况,也不知道需要熟悉啥

睡眠还是没有解决,老是被狗喊醒,希望 7 月份的时候能缓解

0704

  • 1121,三年 1 个月
  • 周二昨晚 NT,一切正常,希望大人和小孩一路绿灯
  • 前段时间太忙了,根本没有时间去记录,最近稍微好一点
  • 家里亲戚俩个弟弟,一个考了 642,一个 459,性格差异太大,希望自己的小孩身心健康正常就行,能考多少是多少,不强求

0706

  • 1123
  • 送老妈回南京,下次老妈来上海还不知道啥时候,也许是生产的时候,也许就不会再来上海了

0708

  • 1125,140(目标 2024/12)
  • 本周要做的几件事:会员和换肤页面
  • 闲暇时光,翻一番面试清单和记录吧,怀孕确实让自己这俩月乱了节奏,但终归还是要回归平静

0719

ts
type Fn = (data?: any) => void

interface Event {
  key: number
  callback: Fn
}

interface PublishedEvents {
  name: string
  data?: any
}

export class EventManager {
  _events: { [key: string]: Event[] } = {}

  _publishedEvents: PublishedEvents[] = []

  _uniqueId = 0 // use self increasing number to guarantee global uniqueness

  subscribe(name: string, callback: Fn): number {
    if (!this._events[name]) {
      this._events[name] = []
    }
    const event = { key: this._uniqueId++, callback }
    this._events[name].push(event)
    return event.key
  }

  publish(name: string, data?: any): void {
    this._publishedEvents.push({ name, data })
    if (this._events[name]) {
      this._events[name].forEach(({ callback }): void => {
        callback(data)
      })
    }
  }

  unSubscribe(name: string, key: number): void {
    if (this._events[name]) {
      for (let i = 0; i < this._events[name].length; i++) {
        if (key === this._events[name][i].key) {
          this._events[name].splice(i, 1)
          break
        }
      }
    }
  }

  // Make sure published events can be triggered when subscribed
  ensureTriggeredAndSubscribe(name: string, callback: Fn): number {
    const event = this._publishedEvents
      .slice()
      .reverse()
      .find((item) => item.name === name)
    if (event) {
      callback(event.data)
    }
    return this.subscribe(name, callback)
  }
}

使用

ts
import { EventManager } from "micro-event-manager"

// first create a manager instance
const eventManager = new EventManager()

// then subscribe to an event, it will return an unique key
const key = eventManager.subscribe("log", () => {
  console.log("executed")
})

// trigger the event, the second argument is optional
eventManager.publish("log", "data")

// you can use the generated key to unsubscribe the event
eventManager.unSubscribe("log", key)

// when you are not sure if the subscription happens before the publishment
// and you want to make sure any published events should be triggered, you can use this function to subscribe
eventManager.ensureTriggeredAndSubscribe("log", () => {
  console.log("executed")
})

0720

  • 1137,128
  • 换肤有个锚点效果搞了好久,最主要的原因是滚动,滚动到某一区域的时候老是在抖动?原因是锚点区域距离顶部的位移变化了导致抖动,如何拒绝这种情况呢?
  • 忙于业务迭代,基本没时间搞其他研发,其实这不是自己想要的结果,还是希望自己能沉淀下来,拿出点不一样的结果
  • 沉淀锚点组件,这样下次还能继续复用(最近一周任务)

0722

  • 1139
  • gird 布局中的 justify-items 属性和 justify-content 属性区别? ::: infos

justify-content 属性是整个内容区域在容器里面的水平位置(左中右),align-content 属性是整个内容区域的垂直位置(上中下)。

.container { justify-content: start | end | center | stretch | space-around | space-between | space-evenly; align-content: start | end | center | stretch | space-around | space-between | space-evenly;
}

justify-items 属性设置单元格内容的水平位置(左中右),align-items 属性设置单元格内容的垂直位置(上中下)。 .container { justify-items: start | end | center | stretch; align-items: start | end | center | stretch; }

:::

0723

sh
git cherry-pick <commitHash>

上面命令就会将指定的提交 commitHash,应用于当前分支。这会在当前分支产生一个新的提交,当然它们的哈希值会不一样。

0725

  • 1142 度过了人生的 33 岁生日,距离 35 岁还差 2 年,所以用这最后的 2 年时间把房贷在提前还一还,给未来的家庭少点压力
  • 3 年前,刚来到上海的时候,对象陪我一起度过了 30 岁生日,3 年后依然还在这里,感谢曾经拥有的一切
  • 如果能坚持到明年 2 月,那我这段公司历程将超过以往任何一家公司,也就是呆了快四年了,争取坚持到 2027 年,也就是干满 6 年毕业,前面还有 5 关,感觉难度太大

0729

  • 1146
  • 父母不可能一直陪在子女身边,所以有了小孩更要学会独立
  • 0811,还有 12 天,终归还得自己学会做家务和做饭,未来的路只能靠自己去走了,辛苦肯定是要辛苦一点的,没办法,父母亲们都很忙,能理解就行

0730

  • 1147
  • 第二次大产检,做唐氏儿筛查和无创 DNA 检测,希望能有好的结果