技术随记

128 阅读3分钟

这篇文章主要用于工作中遇到的问题和学到的技术,用于记录技术的成长。有些可能很小,有的内容可能很多,比较小的就随便记录一下,比较大的内容会单独开一篇文章

第六周

  • :deep() 不要总作用于最大的外层标签,每个组件会有一个属性
  • process.env.NODE_ENV 默认为 development、production和test,或者是--mode xxx对应的xxx,xxx必须是前面三种的一种,如果不是在从.env中找,如果在没有就是development
  • :not 的使用 当前选中的样式去掉:not中选中的内容
  • 如果想在页面初始化之后,获取最新的数据,页面存在watch,所以你不知道数据在什么时候结束,你可以使用nextTick,如果有多个watch 互相影响的话,可以使用setTimeout
  • npm 不能下载node-sass,需要使用cnpm,node-sass已经废弃了,使用dart-sass

第五周

2022.08.22

  • 限制T的内容,如果不这么写,不知道T有哪些数据
  • 不能将类型“undefined”分配给类型“DataNode”,明明在此之前判断了变量不能为undefined

2022.08.26

  • reactive值obj的属性m是ref值a,直接修改a.value 是不能修改obj.m的值,他们都是代理到原值
  • 如果reactive值obj的属性m是computed值,如果修改obj.m的值,computed必须有set函数,不然报错。
  • 如果期望如果reactive值obj的属性m的值是根据另外一个变量变化的,可以通过computed代理
  • 剪裁绑定:(0, obj.fn)(arg),这里会执行obj.fn函数,但是函数中this的指向是window的,因为括号是会计算结果返回的,相当于const fn = obj.fn;fn(arg)

第四周

2022.06.30

怎么判断proxy实例的target是对象还是数组

就像普通的判断一个变量是数组还对象一样

  • 通过instanceof
  • 通过判断constructor
  • Object.prototype.toString

那是不是说明new Proxy里面是放回一个new Array或者new Object

第三周

2022.06.30

!是什么作用

render!.call(
  proxyToUse,
  proxyToUse!,
  renderCache,
  props,
  setupState,
  data,
  ctx
)

这里的render和proxyToUse后面都出现了!,表示类型推断排除null、undefined。就是告诉TS这个参数不可能是null、undefined

第二周

2022.06.20

非最后一个标签选择器

:not(:last-child)

第一周

2022.06.12

vue3 v-model 问题

v-model. 是修饰符,:才是传值。如果父级使用v-model子级也使用v-model,那么model-value会穿透,直接作用于子级的最外层标签上,就算子级使用了model-value。但是这有个条件,就是子级template只有一个标签,也没有定义model-value props属性,才会直接传到子级上。

值的透传对应该是所有的属性都可以

unplugin-vue-components

unplugin-vue-components会默认注册src/components下面,也就是dirs属性 可能跟你自定义的内容重复。但是会以src/components为主,比如,你在src/components下定义了一个JhForm组件,然后在resolvers中定义引入第三方组件库,里面也有JhForm组件,那么会实际引用src/components下的组件。