var app = new Vue({
 el: '#main',
 template: $("#products-template").text(),
 data: {
loading: true,
products: []
},
ready: function() {
var self = this;
$.getJSON(url, function(fbresults){
self.products = fbresults.data;
self.loading  = false;
});
}
});

Y

var app = new Vue({
el= '#main',
template= $("#products-template").text(),
data= {
loading= true,
products= []
},
ready= function() {
var self = this;
$.getJSON(url, function(fbresults){
self.products = fbresults.data;
self.loading  = false;
});
}
});

En los fragmentos de código anteriores, se usan '=' y ':', entonces, ¿cuándo necesitamos usar = y cuándo usar:, cuál es el propósito de: principalmente

2
user3280908 28 ago. 2014 a las 20:23

3 respuestas

La mejor respuesta

Los dos puntos aquí se usan al declarar propiedades de un objeto literal:

{
    key: value,
    key2: value2
}

El operador igual asigna un valor a una variable o expresión:

foo = 5;
obj.key = value;

En su ejemplo, los dos puntos son propiedades definitorias del objeto pasado a Vue. Es mucho más obvio si usa la sangría adecuada:

var app = new Vue({
    el: '#main',
    template: $("#products-template").text(),
    data: {
        loading: true,
        products: []
    },
    ready: function() {
        var self = this;
        $.getJSON(url, function(fbresults){
            self.products = fbresults.data;
            self.loading  = false;
        });
    }
});
1
apsillers 28 ago. 2014 a las 16:26

Puedes entender esto con un simple ejemplo:

var x = {
    obj1: 'text1', //declaring properties of an object literal
    obj2: 'text2'
};

Es funcionalmente equivalente a

var y = new Object();
obj1.a = 'text1';  //assigning a value to the expression
obj2.b = 'text2';
1
Rahul Tripathi 28 ago. 2014 a las 16:27

: asigna valores dentro de un objeto literal, = asigna valores fuera de un objeto literal.

Por ejemplo:

// at this point we're outside of an object, so we use =
var hello = "world";

var someObject = {
    // now we're inside an object literal definition, so we use :
    hello: "world"
};
1
Elliot Bonneville 28 ago. 2014 a las 16:25