Подтвердить что ты не робот

Понимание реквизита в vue.js

Я работаю через руководство по обучению vue.js, попал в раздел по реквизитам и задался вопросом.

Я понимаю, что у дочерних компонентов есть изолированные краны, и мы используем конфигурацию реквизита для передачи данных в нее от родителя, но когда я пытаюсь это сделать, я не могу заставить его работать.

У меня пример, над которым я работаю над js скрипкой:

var vm = new Vue({
   el: '#app',
   // data from my parent that I want to pass to the child component
   data:{
       greeting: 'hi'
   },
   components:{
        'person-container':{

            // passing in the 'greeting' property from the parent to the child component
            props:['greeting'],

            // setting data locally for the child
            data: function (){
                return { name: 'Chris' };
            },

            // using both local and parent data in the child template
            template: '<div> {{ greeting }}, {{ name }}</div>'
        }
   }
});

Когда я запускаю вышеуказанный код, мой вывод только:

Крис

Данные, локальные для дочернего компонента, отображаются отлично, но переданные в родительские данные либо не проходят, либо неправильно отображаются.

Я не вижу ошибок в консоли javascript, а шаблон - рендеринг.

Я не понимаю, как должны быть переданы реквизиты?

4b9b3361

Ответ 2

Я обновил ваш fiddle

<person-container :greeting="greeting"></person-container>

Вам нужно передать реквизиты родительского элемента в дочерний компонент html.

Ответ 3

Вы также можете передать любую строку в "приветствие", просто установив ее как обычный атрибут html, не используя директиву v-bind.

<person-container greeting="hi"></person-container>

Будет также работать. Обратите внимание, что все, что вы передаете, будет интерпретироваться как простая строка.

<person-container greeting="2 + 2"></person-container>

В результате получится "2 + 2, Крис".
Подробнее в руководстве пользователя: https://vuejs.org/v2/guide/components.html#Props