掘友等级
获得徽章 0
今日tip
margin-left: auto; 可以实现类似float:right的样式。
原因
常规流中的块级非置换元素需要满足: 'margin-left' + 'border-left-width' + padding-left' + 'width' + 'padding-right' + 'border-right-width' + 'margin-right' = 包含塊的寬度,若恰好只有一個值被指定為 'auto',則該使用值由等式求出
Ts 实现一个 ExcludeByType ,类似Exclude,再添加一个类型参数Type,可以获取key过滤掉value属于Type的key
example:
type ExcludeBuType<T, Type> = ...
type A = ExcludeByType<{a: string; b:number; c: boolean;}, string>
// 'b' | 'c'
我的实现
```
type ParamType<T, K extends keyof T = keyof T> = T[K];
type ExcludeByType<T, Type, K extends keyof T = keyof T> = ParamType<{
[P in K]: T[P] extends Type ? never : P
}>
```
感觉有点臃肿,有没有更好的实现?
今天的一个js优化知识点: 当生成一个不断变化的字符串时,采用数组形式push再join效率会比 字符串相加要快的多
```
console.time()
let s = ""
let i = 0;
while(i< 10000) {
s+='1'
i++
}
console.timeEnd()
console.time()
let s2 = []
let i2 = 0;
while(i< 10000) {
s2.push('1')
i++
}
s2.join('')
console.timeEnd()
```
Array.prototype.fill填充对象的话居然是同一个对象
花了几天时间写了个vite react版,目前简单实现了组件的热更新
说起来vue的hmr比react好啊,react无脑重新render不能保存状态啊
react为什么没有esm的打包文件?bootcdn中没有找到,但是vue有
为啥为什么antd以前说自己是世界上第二受欢迎的react ui库?
在chrome浏览器尝试
onerror和addEventListener('error'), 同步throw一个错误,并不触发,setTimeout会触发
unhandledrejection和rejectionhandled无论怎么也不会触发,这是什么原因吗?
function btn() {
const [num, setNum] = useState(0);
console.log('render')
return <button onClick={() => setNum(1)}>{num}</button>
}
为啥点击两次button会输出两次render,第二次点击已经为1了啊,不应该在构建vdom了啊?谁能解释一下
下一页