vue propiedades parameter framework computed computadas javascript vue.js computed-properties

javascript - parameter - vue js propiedades computadas



VueJS ¿Cómo puedo usar la propiedad calculada con v-for (2)

Lo que se está perdiendo aquí es que sus items son una matriz, que contiene todos los elementos, pero el computed es un solo nombre fullName , que simplemente no puede expresar todos los fullName en los items . Prueba esto:

var vm = new Vue({ el: ''#el'', data: { items: items }, computed: { // corrections start fullNames: function() { return this.items.map(function(item) { return item.firstname + '' '' + item.lastname; }); } // corrections end } });

Luego en la vista:

<div id="el"> <p v-for="(item, index) in items"> <span>{{fullNames[index]}}</span> </p> </div>

La forma en que Bill presenta seguramente funciona, pero podemos hacerlo con accesorios computarizados y creo que es un mejor diseño que el method en iteraciones, especialmente cuando la aplicación se hace más grande. Además, el computed tiene una ganancia de rendimiento en comparación con el method en algunas circunstancias: http://vuejs.org/guide/computed.html#Computed-Caching-vs-Methods

¿Cómo puedo usar la propiedad calculada en las listas? Estoy usando VueJS v2.0.2.

Aquí está el HTML:

<div id="el"> <p v-for="item in items"> <span>{{fullName}}</span> </p> </div>

Aquí está el código Vue:

var items = [ { id:1, firstname:''John'', lastname: ''Doe'' }, { id:2, firstname:''Martin'', lastname: ''Bust'' } ]; var vm = new Vue({ el: ''#el'', data: { items: items }, computed: { fullName: function(item) { return item.firstname + '' '' + item.lastname; }, }, });


No puede crear una propiedad calculada para cada iteración. Idealmente, cada uno de esos items sería su propio componente para que cada uno pueda tener su propia propiedad calculada fullName .

Lo que puede hacer, si no desea crear un componente de user , es utilizar un método en su lugar. Puede mover fullName directamente desde la propiedad computed a los methods , luego puede usarlo como:

{{ fullName(user) }}

Además, nota al margen, si necesita pasar un argumento a un computed es probable que desee un método.