Git Product home page Git Product logo

vueuv's People

Contributors

qieguo2016 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

vueuv's Issues

关于Observer

哥们,又来问问题了-_-

set         : function (newVal) {
    if (val === newVal) {
        return;
    }
    val = newVal;  // setter本身已经做了赋值,val作为一个闭包变量,保存最新值
    if (Array.isArray(newVal)) {
      self.observeArray(newVal, dep);  // 递归监视,数组的监视要分开
    } else {
      self.observe(newVal);   // 递归对象属性到基本类型为止
    }
    dep.notify();  // 触发通知
}

假如一开始data = { num: 3},后面赋值data.num = 22是以传值的方式赋给newVal的,这个时候监视newVal,而data.num = 2指的是另外一个内存,虽然data.num的值也是2,我的意思就是这里存在两块内存,而现在监视的是newVal那块内存,data.num是怎么监视成功的?

关于虚拟dom渲染问题

对data里面的a,b都修改了值,会触发deps数组里面的这两个的cb函数。而cb函数最终是要操作DOM的。如果加上虚拟DOM,会先修改虚拟DOM,然后再操作DOM。那岂不是需要执行两次DOM更新?

关于Observer

求教

Observer.prototype.defineReactive方法中的Object.defineProperty方法中

if (Array.isArray(val)) {
     self.observeArray(val, dep);  // 递归监视,数组的监视要分开
 } else {
     self.observe(val);   // 递归对象属性到基本类型为止
 }

这个几行代码和外面的重复

if (Array.isArray(newVal)) {
       self.observeArray(newVal, dep);  // 递归监视,数组的监视要分开
} else {
       self.observe(newVal);   // 递归对象属性到基本类型为止
}

这里为何要重复监视?不懂

关于ast

大佬关于ast也写一篇文章呗
觉得你的解释通俗易懂,非常赞👍

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.