vue

vue中data的属性可以和methods中的方法同名吗?为什么?

发布于 2021-01-11 17:11:47
关注者
0
被浏览
963
6 个回答
  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    错误会报出来,但是没有中断函数执行,只要不是和 props 同名并且第一个字符不是 _$ ,那么就可以使用 this 访问,然后 observe 数据。
    同名的方法被干掉 TypeError: handler.apply is not a function

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    源码 中的 initData() 方法
    if (methods && hasOwn(methods, key)) { warn( Method "${key}" has already been defined as a data property., vm ) }
    会取出 methods 中的方法进行判断,也就是 hasOwn(methods, key)
    如果此 key 值 在 methods 中存在,会有warn 警告哦****

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    会报错(关闭了eslint校验),比如是在使用饿了么组件时,声明一个同名的data 属性和methods方法时,会报错。添加样式的功能没有奏效。
    image
    image
    image
    image

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    可以,但eslint不允许你这么做

    不是啊,就算没有eslint依然会报错的。[Vue warn]: Method "myname" has already been defined as a data property.

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    @1018715564 https://github.com/vuejs/vue/blob/77796596adc48d050beefd11e827e8e4d44c6b3c/src/core/instance/state.js#L48

知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看