热搜词
发表于 2022-6-26 09:22:31 | 显示全部楼层 |阅读模式
前言
最近在学习vue的时候,发现有时候data属性的书写状态有有所不同
在简单的demo中,data属性一般是以属性的方式出现的,而在稍微复杂的项目中,data往往是以函数的方式出现,那么这些书写的形式有什么差异呢?通过官方文档和别人的博客,将答案整理如下:

一、Vue定义data的三种方式
(一)定义为属性
new Vue({
  el : '#app',
data : {
  message : 'Hello, Vue~'
  }
})
(二)定义为函数
new Vue({
  el: '#app',
  data:  function( ){
    return {
      message: 'Hello, Vue~'
    }
  }
})
(三)定义为函数,满足ES6(ECMAScript 6.0 )规范
和第二种类似,但语言更加简洁

new Vue({
  el : '#app',
  data(){
    return {
      'Hello , Vue'
    }
})
二、上面三种写法的区别
在简单的vue实例应用中,三种写法几乎是没有什么区别的,因为你定义的#yanggb对象不会被复用。

但是如果是在组件应用的环境中,就可能会存在多个地方调用同一个组件的情况,为了不让多个地方的组件共享同一个data对象,只能返回函数。这个与JavaScript的作用域特性有关,函数自己拥有私有的作用域,函数之间的作用域相互独立,也就不会出现组件对数据的绑定出现交错的情况

作者:moutory
链接:https://www.jianshu.com/p/403319671733
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

全部评论0
回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|管理员之家 ( 苏ICP备2023053177号-2 )

GMT+8, 2025-1-15 23:26 , Processed in 0.163764 second(s), 22 queries .

Powered by Discuz! X3.5

Cpoyright © 2001-2025 Discuz! Team