profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/coloker/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
coloker 不忘初心,方得始终

coloker/icu996 2

vue creat

coloker/better-scroll 0

:scroll: inspired by iscroll, and it supports more features and has a better scroll perfermance

coloker/Catch-the-fish 0

Catch the fish 捕鱼达人

coloker/coloker.github.com 0

王路路的个人主页

coloker/iosselect 0

webapp通用选择器

coloker/jekyll_demo 0

blog test

coloker/test 0

first 练习

coloker/unit 0

自己封装的小插件

coloker/vuex 0

🗃️ Centralized State Management for Vue.js.

coloker/weui 0

A UI library by WeChat official design team, includes the most useful widgets/modules in mobile web applications.

issue commentlihongxun945/myblog

五子棋AI教程第二版一:前言

这ai好像不怎么滴啊,我没怎么学五子棋乱杀它,它黑下不过我白,白下不过我黑

lihongxun945

comment created time in 7 days

issue commentlihongxun945/myblog

五子棋AI教程第二版一:前言

您好,非常感谢您的教程,我发现了一个bug,如果我执后手,在输掉后重开一局会直接重现上一局输掉的情况(这里不贴图了,只要后手输掉就会出现)

lihongxun945

comment created time in 16 days

issue commentlihongxun945/myblog

Vue2.x源码解析系列四:数据响应之Observer

下一章:Vue2.x源码解析系列五:数据响应之Watcher

最后一行的链接失效了。可能是手滑删了?应该是下面这个吧,博主修复一下?

https://github.com/lihongxun945/myblog/issues/27

感谢指正,已更新

lihongxun945

comment created time in 2 months

issue commentlihongxun945/myblog

Vue2.x源码解析系列四:数据响应之Observer

下一章:Vue2.x源码解析系列五:数据响应之Watcher

最后一行的链接失效了。可能是手滑删了?应该是下面这个吧,博主修复一下?

https://github.com/lihongxun945/myblog/issues/27

lihongxun945

comment created time in 2 months

issue commentlihongxun945/myblog

Vue2.x源码解析系列三:Options配置的处理

"不同的filed是有不同方案的,比如到底是要覆盖还是要合并等。mergeFiled函数是通过调用……"。filed -> field。

lihongxun945

comment created time in 3 months

issue commentlihongxun945/myblog

Vue2.x源码解析系列四:数据响应之Observer

但是这里我简单说明一下,这个target其实是一个 watcher,我们在获取一个数据的时候,比如 this.msg 并是不直接去 this._data.msg 上取,而是先创建一个watcher,然后通过 watcher.value来取,而watcher.value === msg.getter 所以在取值的时候,我们就知道 watcher 是依赖于当前的 dep 的,而 dep.depend() 相当于 watcher.deps.push(dep)。

this.msg取的就是data上的值吧?

  if ((!getter || setter) && arguments.length === 2) {
    val = obj[key]
  }

这个val就是存的属性的值,至于watch里面的value,只是回调的时候传参的时候用到。

watch: {
  msg (newVal, oldVal) {
    // oldVal就是watch上保存的value
    console.log(newVal, oldVal)
  }
lihongxun945

comment created time in 3 months

issue commentlihongxun945/myblog

Vue2.x源码解析系列四:数据响应之Observer

const getter = property && property.get const setter = property && property.set //有getter 无setter val=undefined 不是太理解?????? //无getter 有setter //无getter 无setter if ((!getter || setter) && arguments.length === 2) { val = obj[key] }

let childOb = !shallow && observe(val) Object.defineProperty(obj, key, { enumerable: true, configurable: true, get: function reactiveGetter () {

大佬 看源码 有疑问 请问 if ((!getter || setter) && arguments.length === 2) { 这个怎么比较细致的理解的?有点困惑 不胜感激!!谢谢

有getter没setter说明是只读属性,在get方法中通过getter获取value的值,set中也是一样。至于依赖收集之类的功能也不需要了。具体看这句:if (getter && !setter) return,后面的dep.notify()不会触发,也就是说只读属性不是响应式的。val只在这两个地方有用到,所以只读属性就不需要获取val的值了。

以上是个人的理解。

相关的issue:

https://github.com/vuejs/vue/issues/9203

https://github.com/vuejs/vue/pull/7981

lihongxun945

comment created time in 3 months