• Cander
    2019-04-05
    老师你好, 我的理解是vue在实例化的时候, 会对data对象中的每一个属性, 去做数据跟踪, 但是在写业务逻辑时, 会有很多的属性其实在视图层根本用不到, 但是这个属性在下面的methods的方法中会用到, 比如下面的代码:

    export default {
      data () {
        return {
          title: 'xxx', // 这个属性需要在视图层用到, 需要加上数据跟踪
          loginStatus: false, // 这个属性在视图层用不到, 但是在methods的方法中要用来改变和作为判断条件, 根本不需要加入数据跟踪
        }
      }
    }


    但是改写成这样以后, 不需要跟踪的就不会跟踪了, 但是这样会有什么问题吗? 目前不知道如何去验证

    export default {
      data () {
        this.loginStatus = false // 这样这个属性就不会加上数据跟踪, 但是下面的方法还可以 this.loginStatus 的去使用
        return {
          title: 'xxx' // 这个属性需要在视图层用到, 需要加上数据跟踪
        }
      }
    }

    请问老师你在处理这种视图层用不到, 但是需要存储下面的逻辑状态的时候是怎么处理的呢?

    展开

    作者回复: 和你的处理方式一样 😄

    
     2
  • 静
    2019-03-20
    没太明白,网上说VUE实现双向数据绑定的原理就是利用了 Object.defineProperty() 这个方法重新定义了对象获取属性值(get)和设置属性值(set)的操作来实现的。也是一直这么理解的,那老师的解释,是和这个API没有关系吗? 实际上是通过事件的回调来更新数据的?v-model 只是一个语法糖。

    作者回复: 对的 双向绑定只是语法糖,get和set的改写只是做响应式更新视图的 这两块东西本可以没有关系的 但已经被众多文章把他们关联在了一起 好像成了既定的事实 如果面试过程中问到的话,倒也是可以扩展着讲讲这块的内容

    
     2
  • bolingboling
    2019-04-09
    如果想在调用子组件时使用语法糖的写法,子组件触发的事件命名必须有约束,触发事件名要定义为 `update:eventName` ,`update:`是固定写法,`eventName`可以自定义,是这样吗?
    比如我想触发的事件是`updata_eventName`时,语法糖就不能用了,我的理解对吗?

    作者回复: 不能用update:update_eventName ?

    
     1
  • SHINE
    2019-07-01
    单项数据流说的不是父级 prop 的更新会向下流动到子组件中,但是反过来则不行这样一个意思吗,
    组件中的双向绑定的使用场景一般有哪些呢,感觉是不是一般用到的很少啊

    作者回复: 可以这么理解 所有的改动都要从父级改动
    场景很多啊,最常用的就是输入框了

     1
    
  • 奥斯特洛夫斯基
    2019-06-24
    对于非input元素呢,用watch吗
    
    
  • 小文同学
    2019-06-17
    刷了n次这节课,一边实践一边看,终于看明白单项数据流和双向绑定的关系了。写上了第一个自己的vue组件。技术果然是需要一点点思考实践才能纳入自己的工具箱里

    作者回复: 👍👍👍

    
    
  • geeeee
    2019-04-15
    v-model,只能双向绑定组件的一个属性,如果想要组件的多个属性都能实现双向绑定该怎么办?

    作者回复: .sync 修饰符

    
    
  • Rachel
    2019-04-14
    老师,我把您的代码克隆下来后,npm install 一直报错,无法正常运行,这是什么原因,我的vuecli
    是3.6.0版本的,node是10.多版本的

    作者回复: 网络问题?
    可以尝试使用淘宝npm源,http://npm.taobao.org/

    
    
  • young
    2019-04-05
    老师,我研究了好久v-model和.sync觉得它们都可以实现双向绑定,而且原理都是当子组件的状态发生变化时向父组件发送一个事件,然后父组更新本地的属性来实现双向绑定!这两种用法分别用在什以场景?

    作者回复: 一个组件需要提供多个双向绑定的属性时使用,你只能选用一个属性来提供 v-model 功能,但如果有其他属性也要提供双向绑定,就需要.sync

    
    
我们在线,来聊聊吧