Wuma
Wuma
书中第11页,这是不得恢复先入栈的target?  vue.js源码[/src/core/observer/dep.js#L58-L66](https://github.com/vuejs/vue/blob/38e967b8067441ff37cb3b923200023a6b842759/src/core/observer/dep.js#L58-L66) 和[/src/core/observer/watcher.js#L119](https://github.com/vuejs/vue/blob/4f111f9225f938f7a2456d341626dbdfd210ff0c/src/core/observer/watcher.js#L119)是通过栈来做的。如果不恢复先入栈的target,就不能实现深层次的响应了 ``` js get () { const preTarget = window.target window.target = this const value = this.getter.call(this.vm, this.vm) window.target = preTarget return value } ```
> @cytle 对的,Vue.js的源码是一个栈。但书里并不是100%还原源码,因为真实的Vue.js有很多用于处理细节和bug的代码,这些代码并不利于初学者学习,会干扰读者理解主要思想。书里用 window.target 来实现在原理与思想上是一样的,而且理解成本更低。 > > 举个例子:假设我们的目标是打印log,初学者只需要理解console.log能打印就行了,但真实项目代码中可能为了兼容,会写一些额外的代码来兼容 console.log 语法。但其实对于学习来说没必要关注兼容问题,他只需要理解这里的作用是打印log就行了。😁😁 嗯,我提出这个问题是看到这里时候发现和我之前理解的有冲突,这里不处理target总觉得怪怪的😁。不过你说的很有道理,能够理解
> 为什么Dep的notify函数里const sub = this.subs.slice(), 要这样多一步呢? 不直接用const sub = this.subs,这样有什么特别用意吗? 表示拷贝一份subs,如果没理解错的话,是为了稳定subs列表,`subs[i].update()`会触发`Watcher.get()`,重新计算,这过程中可能会增加`subs`。
> @cytle subs好像不会增加,因为每个属性对应一个Dep, 然后每次改变就往对应的Dep的subs塞一个watcher。但是后来我发现我更改值的次数多了,就会塞更多的watcher,然后没事通知Dep的时候就会重复触发多次watcher,这样显然不对,所以我改成this.subs.slice(this.subs.length - 1)让它每次都值通知最新的watcher。源码也是写this.subs.slice(),所以我就很疑惑。 1. 比如计算属性,计算属性里面有`if`判断,有可能Dep会增加sub 2. 因为书里的实现没有去重,vue源码先判断是否已经添加sub。https://github.com/vuejs/vue/blob/dev/src/core/observer/watcher.js#L133
应该是wine没安装好, 找下相关issue
这个错误是`~/.config/wechat_web_devtools/`没被ide生成,造成没有`.config/wechat_web_devtools/WeappVendor/`文件夹,原因不明
找到一个依赖列表,是在CentOS下运行沙盒模式的`puppeteer`的 ``` yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 -y ``` 来自: [Does CentOS system can run puppeteer with sandbox anyway?](https://github.com/GoogleChrome/puppeteer/issues/560#issuecomment-325245136)
现在还有问题吗? @jiankafei @hlbj105
wine 只用于wxss和wxml的编译,你可以看看是不是系统不支持,造成nwjs的api调用失败。
@sunnyabc789 这个修复了吗