Vue2实例中的data属性三种写法与作用

<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app">
    <span>{{count}}</span>
    <button @click="inc">+</button>
</div>
<script>
var app = new Vue({
  // 1.
  // data () {
  //   return {count: 0}
  // },

  // 2.
  // data: {
  //   count: 0
  // },

  // 3.
  data: function() {
    return {
      count: 0
    }
  },

  methods: {
    inc () {this.count++}
  }
})
app.$mount(‘#app‘)
</script>

首先,1是3的语法糖,是新的ES6语法,和3一摸一样。

然后1和2在官方文档上都有例子,区别也解释得很清楚。简而言之,在app = new Vue对象时,没什么区别,因为你app对象不会被复用。但是在组件中,因为可能在多处调用同一组件,所以为了不让多处的组件共享同一data对象,只能返回函数。function有作用域,所以别的组件访问不了。

原文地址:https://www.cnblogs.com/yangai/p/9663344.html

时间: 2024-07-31 03:19:55

Vue2实例中的data属性三种写法与作用的相关文章

vue实例中中data属性三种写法

<script type="text/javascript"> var app=new Vue({ el:'#app', data:{ book: "vue.js" } })</script> <script type="text/javascript">var app=new Vue({el:'#app',data:function(){book: "vue.js"}})</scri

js中回调函数的三种写法

回调函数的三种写法: 1.通过指针来调用 2.通过匿名函数来调用 3.定义与执行同时进行 // 通过指针来调用 function math(num1,num2,callback){ return callback(num1 , num2); } function aa(num1,num2){ return num1 + num2; } function bb(num1,num2){ return num1 - num2; } console.log( math(2,1,aa) ); // 3 c

3.Struts2中Action类的三种写法

一.普通的POJO类(没有继承没有实现) public class DemoAction1 { public String execute(){ System.out.println("DemoAction1是普通的POJO类..."); return null; } } <!-- 普通的POJO类 --> <action name="action1" class="com.struts2.web.action2.DemoAction1&

实例365(8)---------三种方法将字符串格式化为日期

一:DateTime.ParseExact方式,截图 二:代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace ConvertToString { public

横冲直撞vue(第三篇):vue中template的三种写法、v-bind、v-on、更新元素的指令v-text与v-html、条件渲染指令v-if 与v-show、v-for

一.vue中template的三种写法 第一种(字符串模板写法): 直接写在vue构造器里,这种写法比较直观,适用于html代码不多的场景,但是如果模板里html代码太多,不便于维护,不建议这么写. <body> <div id="app"></div> <script src="./lib/vue.js"></script> <script type="text/javascript&qu

spring在xml文件中配置bean的三种方法

一.最常见,也是缺省,是调用spring的缺省工厂类 spring缺省工厂类:org.springframework.beans.factory.support.DefaultListableBeanFactory使用其静态方法preInstantiateSingletons() 配置文件中最普通最基本的定义一个普通bean<bean id="DvdTypeDAOBean" class="com.machome.dvd.impl.DvdTypeDAO" >

vue定义data的三种方式与区别

var app = new Vue({ el: '#yanggb', data: { yanggb: 'yanggb' } }) 2.第二种写法,函数. var app = new Vue({ el: '#yanggb', data: function() { return { yanggb: 'yanggb' } } }) 3.第三种写法,函数,是第二种写法的ES6写法. var app = new Vue({ el: '#yanggb', data() { return { yanggb:

js中斐波拉切数的三种写法;

js中斐波拉切数的三种写法: function factorial(num){ if(num <=1){ return 1; }else{ return num* factorial(num-1); } } console.log(factorial(5));//120 面这个函数的执行与函数名紧紧耦合在了一起,可以使用arguments.callee可以消除函数解耦 第二种(在严格模式下,访问这个属性会抛出TypeError错误) function factorial(num){ if(num

java中创建线程的三种方法以及区别

Java使用Thread类代表线程,所有的线程对象都必须是Thread类或其子类的实例.Java可以用三种方式来创建线程,如下所示: 1)继承Thread类创建线程 2)实现Runnable接口创建线程 3)使用Callable和Future创建线程 下面让我们分别来看看这三种创建线程的方法. ------------------------继承Thread类创建线程--------------------- 通过继承Thread类来创建并启动多线程的一般步骤如下 1]d定义Thread类的子类