vue props pasar parametros otro enviar entre ejemplos datos comunicacion componentes componente compartir vue.js vue-loader

vue.js - props - Acceso a accesorios en la función de datos de componentes vue



vue props (4)

Desde el método data() , puede hacer referencia a las propiedades del componente usando this .

Así que en tu caso:

data: function() { var theData = { somevar: this.messageId, // other object attributes } return theData; }

Le estoy pasando una utilería a un componente:

<template> {{messageId}} // other html code </template> <script> export default { props: [''messageId''], data: function(){ var theData={ // below line gives ReferenceError messageId is not defined somevar: messageId, // other object attributes } } } </script>

En el código anterior, he comentado la línea que da el error. Si elimino esa línea, funciona como es normal y la plantilla se procesa correctamente (y también puedo ver el valor esperado de {{messageId}}). Por lo tanto la lógica para pasar datos es correcta.

Parece que la forma de acceder al messageId en data () es incorrecta. Entonces, ¿cómo messageId al props messageId en los datos?


Para asignar una propiedad de datos igual a un objeto, puede usar el observador, como se indica a continuación:

<script> export default { props: [''messageId''], data: function(){ var theData={ somevar: "", // other object attributes } }, watch: { messageId: function(newVal) { this.somevar = newVal } } }


Tenga en cuenta que esto no funciona si está utilizando una función de flecha para asignar sus datos:

data: () => ({ somevar: this.messageId // undefined }),

Porque this no apuntará al componente. En su lugar, utilice una función antigua simple:

data: function() { return { somevar: this.messageId } },


<template> {{messaged}} // other HTML code </template> <script> export default { props: [''messaged''], data: function(){ return () { some_var: this.messaged } }, methods: { post_order: function () { console.log({ some_var: this.some_var.id }) } } } </script>