V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  ooo4  ›  全部回复第 6 页 / 共 7 页
回复总数  138
1  2  3  4  5  6  7  
2024 年 3 月 21 日
回复了 chenchunhan8888 创建的主题 Vue.js 请教一个 vue3 diff 问题
@linzhe141 如果不加 key 通过 patchUnkeyedChildren 更新,加了 key 通过 patchKeyedChildren 更新
```js
const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, namespace, slotScopeIds, optimized) => {
c1 = c1 || EMPTY_ARR;
c2 = c2 || EMPTY_ARR;
const oldLength = c1.length;
const newLength = c2.length;
const commonLength = Math.min(oldLength, newLength);
let i;
// "公共"部分,新旧 dom 按照顺序 patch
for (i = 0; i < commonLength; i++) {
const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
patch(
c1[i],
nextChild,
container,
null,
parentComponent,
parentSuspense,
namespace,
slotScopeIds,
optimized
);
}
if (oldLength > newLength) {
unmountChildren(
c1,
parentComponent,
parentSuspense,
true,
false,
commonLength
);
} else {
mountChildren(
c2,
container,
anchor,
parentComponent,
parentSuspense,
namespace,
slotScopeIds,
optimized,
commonLength
);
}
};
```

[playground]( https://play.vuejs.org/#eNp9Uk1PAjEQ/SuTXsQEl88TWUjUcNCDGuVmPeAyLMVu2/QDSTb73512w8LBcOr0zZuZ96at2b0x2SEgm7HcFVYYDw59MAuuRGW09VCDxS00sLW6ghui3nDFVaGV8yCF8yOYR0bvswaxmcGoD4e1DEgRNH2qjuC4A8dncNKBE2i+bmNXrmj4SlSog+/1bmG+gJoraOdkiZ2Z4Ha9tsO06zCFhhoAbPA7lCVarmjMaDgcEpoPWmNkiS4eKyPXHukGkAeZToqkgMPdVts5Z4I4IFQ7lTNY1DQuYk2TD6RoKwepNB9c9GN95h0tZivKbO+0op0m9ZwVujJCon01XtDiOJu1vmJuLaX+fU6YtwH7J7zYYfHzD753x4hx9mbRoT0gZ13Or22Jvk0vP17wSHGXrPQmSGJfSb6j0zJEjS3tIagNyb7gJbVP6WcIVa7c8uhRuZOpKDQym8TnjH7L4xXrZ7mTbJrq6N1Y8wc8q9Yh)
2024 年 3 月 21 日
回复了 chenchunhan8888 创建的主题 Vue.js 请教一个 vue3 diff 问题
所以说 v-for 要结合 key 使用
@linzhe141 如果 tsconfig.json 中不存在 'files' 或 'include' 属性,则编译器默认包含包含目录和子目录中的所有文件,但 'exclude' 指定的文件除外。指定 'files' 属性时,仅包含那些文件 文件和“include”指定的文件都包含在内。

这个 files 为空数组就不行了,和 vue 没有关系,是 ts 配置问题,导致编辑器没有正确识别
{
"compilerOptions": {
"paths": {
"@/*": ["./packages/*"],
"@components*": ["./packages/components/*"]
}
}
}
import NumberScroll from '@components/number-scroll/src/NumberScroll.vue'
import ScaleScreen from '@/components/scale-screen/src/ScaleScreen.vue'
我用你的配置试了下,没有问题编辑器能够识别 NumberScroll 和 ScaleScreen ,会不会是 vscode 日常抽风了,直接 ctrl+shifit+p ,输入 reload window ,重新加载依次
2024 年 3 月 12 日
回复了 iszengmh 创建的主题 React 为什么我感觉 react 很难学
最难的是他的 state 要 immutable
2024 年 3 月 7 日
回复了 xu33 创建的主题 程序员 谁能用简单的语言解释下 vue2 用 virtual dom 的目的是啥
vue 应该做不到收集 dom 级别的副作用,只能收集到组件级别
2024 年 2 月 29 日
回复了 ych5680 创建的主题 程序员 有没有老哥在 npmjs 传过项目的
教程在哪里
volumes:
- ./log:/app/log
先去看每个类型的经典题的题解,然后每个类型多刷几次,就知道套路了
2024 年 2 月 1 日
回复了 wanmyj 创建的主题 程序员 简历里要不要写自己的折腾经历
如果不写这些,还能写啥,写一大堆后台管理系统?
@hzdzyx 现在 ok 啦 谢谢
前端加一大段```a?.b?.c?.d ?? "无数据"```
2024 年 1 月 29 日
回复了 yazoox 创建的主题 程序员 LeetCode 怎么刷题比较快速高效,还容易复习/复盘?
ts+vitest ,自己写单测
https://github.com/linzhe141/leetcode
2024 年 1 月 25 日
回复了 ooo4 创建的主题 Node.js github action 的 pnpm --filter 和本地执行不一致?
pnpm run -r --filter ./packages/* build:src 改成 pnpm run -r --filter=./packages/* build:src ,filter 的参数改成“=”就可以了🤯
op 黑屏没有,618 买的,昨晚突然就黑屏了,去贴吧搜,一大堆暗影精灵 9 都黑屏了
多关注几个前端网红就行了
@ZGame
@CodePencil 这可是八股文的重灾区
@CodePencil jquery 感觉可以跳过了,都 2024 了
@CodePencil 如果目的是学习,我觉得 blog 就是要越花哨越好,各种技术都要最新的,你身边的人学的太快,也许就只是比你多看了几个比较火的技术 get started
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1267 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 87ms · UTC 23:51 · PVG 07:51 · LAX 15:51 · JFK 18:51
♥ Do have faith in what you're doing.