47 Matching Annotations
  1. Jan 2024
    1. 1.缓存已渲染节点,根据已渲染节点找到锚点,再根据锚点计算出startindex 和 endindex。 2.如何根据位置信息计算出startindex和endindex是关键。

  2. Jul 2023
  3. May 2023
  4. Mar 2023
  5. Feb 2023
    1. , custom-ul 和 custom-li 都是自定义组件,它们有相互间的关系,相互间的通信往往比较复杂。此时在组件定义时加入 relations 定义段,可以解决这样的问题。

      互相通信,意味着数据可以互相访问???

    1. WXS(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。 #

      WXML可以访问WXS的函数。我直接写在js好了,为什么要写这?

    1. 然而上述代码不会正常工作,因为只有 <current-user> 组件可以访问到 user,而我们提供的内容是在父级渲染的。

      通过slot-scope 将子组件暴露出 user 。父组件在使用子组件时v-slot 声明引入子组件暴露的参数,则父组件可以访问。

    1. v-on:update:title="doc.title = $event"

      就是状态提升,子组件把新值塞给了父组件,改变的是父组件的state。并非父子组件的双向绑定,子组件还是无法向上修改props。这也是为什么console会报props showSelectFriendDialog 的问题。

    1. But have in mind if the passed prop is an object or array that is used in the parent component state any modification to that prop will result in the change in that parent component state.

      如何是非基础数据类型,比如数组和对象,会改变父组件的值。难道data中使用的是浅拷贝,有些不可思议。

    1. function f(sn: string | null): string { if (sn == null) { return "default"; } else { return sn; } }

      这个与pet.swim 的例子感觉有点矛盾啊。粗暴的理解为 ts 对 null 有特殊的类型守卫方式吧。对普通属性则无。2333。

    1. 你可以通过添加 namespaced: true 的方式使其成为带命名空间的模块。

      如果知道不会出现重复的命名是不是也可以不用创建命名空间。 嵌套模块与命名空间是共同使用的?看这个例子是这样。

    1. Vite 在 dev-server 时,对依赖使用的是 esbuild 构建工具,esbuild的快速,可以使服务器快速ready;对源码利用esm的浏览器原生能力,在请求源码时,发送文件即可。

      在生产构建时,使用的是rollup。生产环境build产物,考虑到网络资源优化,会进行代码分割和tree-shaking等。

  6. Jan 2023
    1. 使用Webpack构建,确保构建成功,拆分src和vendor至少2个chunk,其它优化自由选择,尽可能地在构建上优化系统。

      vue-cli 中都已经做了。可以看 cli-service 的配置文件

    1. v-model="searchText"

      这种写法还不如多个v-model的绑定容易理解,中间变量modelValue的不可见性。不如单个v-model也用多个的写法。

    2. v-model 可以在组件上使用以实现双向绑定

      对于需要双向绑定的组件,需要通过v-model传入变量。而不是v-bind,并且向父组件传递还是会借助 emit,感觉增加了负担?双向绑定都是特殊的?

    1. [强制] 遍历数组不使用 for in。 解释: 数组对象可能存在数字以外的属性, 这种情况下 for in 不会得到正确结果。

      for in 遍历属性。但是objec也不推荐用for in 遍历,而是 Object.keys 啥的。array 是可迭代对象,可用 for of 遍历。

  7. Dec 2022
    1. 第一轮遍历:处理更新的节点。

      不是很明白,更新??第一轮也不是都更新啊,也有删除和新增啊。应该说移动更新和非移动更新?

    2. 并继续遍历

      newChildren 会++ 吗,如果不会,新节点不是被丢弃了?。参考didact的代码是对oldFiber 打上 delete 的标签,同时创建 newFiber,给newFiber 打上 placement 的标签,生成new dom。

    1. 将child及其兄弟fiber都标记删除。

      为什么singleElement 还有兄弟节点?如果有在parentFiber 的时候就会进入到 reconcileChildrenArray 啊。而我刚才看到了 reconcileChildrenArray 没有调用 singleElement 呀