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

  2. Jul 2023
    1. this.$emit('update:title', newTitle)

      自组件事件触发和配合 .sync共同使用,修改父组件状态。

  3. May 2023
  4. Mar 2023
  5. Feb 2023
    1. dataset

      其它properties和data可以实现,没必要用data-set吧?

    2. 当前组件的一些属性值集合

      事件到达current时,可能是子元素吗冒泡后传递的。这时候target是子元素。

    1. this.triggerEvent('myevent', myEventDetail, myEventOption)

      参数传递看applet的意思是可以放到detail对象上

    1. 而是自定义组件的调用者确定的。这时可以把这个节点声明为“抽象节点”。

      slot??

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

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

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

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

    1. 默认插槽

      类比es 6 的 export default。

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

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

    1. 包含了动态片段和全匹配片段

      也可用作页面的数据传递,通过 this.$route.params 获取。

    1. 使用 props 将组件和路由解耦:

      props方式,将数据传成组件的props。

    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. 在开发时

      问题是,如果我用vite打包含有ts的项目,且不在vite引入类型检查插件,ts checker vite不处理,谁来处理?

    1. 语法是添加 !后缀: identifier!从 identifier的类型里去除了 null和 undefined

      https://www.freecodecamp.org/chinese/news/how-the-question-mark-works-in-javascript/

      ! 和 ?? 空值凝聚都是处理的 null 和 undefined

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

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

    3. typeof x === "number"

      typeof xxx === null 是不可以的。 typeof null 返回 object

    1. 点击确定后,打开新的群聊会话页面,会话内提示您邀请了「xxx、xxx」加入会话(线上server逻辑)
    1. 你可以通过添加 namespaced: true 的方式使其成为带命名空间的模块。

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

    2. Action 通过 store.dispatch 方法触发:
    3. 计算属性命名

      搜了好久没搜到,直到换成了英文233。 https://attacomsian.com/blog/javascript-computed-property-names 在ryf 那本书里叫对象的属性名表达式。https://es6.ruanyifeng.com/#docs/object#%E5%B1%9E%E6%80%A7%E5%90%8D%E8%A1%A8%E8%BE%BE%E5%BC%8F

    1. myOtherMethod(params) { // ...do something else }

      在对象中定义函数和在全局中定义函数不一样噢!!!

    1. 返回一个只读的响应式 ref 对象

      区别就是,watch不会有ref返回值。

    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 的配置文件

    2. 从产品、设计、框架、实现、构建等角度优化系统,表现出自己最好的状态

      !

    3. 拆分src和vendor至少2个chunk

      ?

    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. 标记节点是否移动

      今天看懂了,不知道之后。2333。

    3. 并继续遍历

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

    1. 代码可以看出

      test

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

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