#laravel #vue.js #laravel-blade
#laravel #vue.js #laravel-blade
Вопрос:
файл блейда (JSON):
@extends('layouts.app')
@section('content')
<div>
<test-component :items='{{ $items }}'></test-component>
</div>
@endsection
компонент vue:
<template>
<ul id="example-1">
<li v-for="item in items" :key="item.id">
{{ item.id }}
</li>
</ul>
</template>
<script>
// Vue.js のインスタンス
module.exports = new Vue({
props: {
items: {
type: Object,
defalut: {},
},
},
})
</script>
Инструмент разработчика Google:
<ul id="example-1" items="[object Object],[object Object],[object
Object],[object Object],</ul>
Предупреждение:
[Предупреждение Vue]: свойство или метод «items» не определены в экземпляре, но на них ссылаются во время рендеринга. Убедитесь, что это свойство является реактивным либо в параметре data, либо для компонентов на основе классов, путем инициализации свойства.
Результат обработки будет таким. Я не знаю, какую ошибку я допустил.
Комментарии:
1. не могли бы вы объяснить это подробнее? <ul id=»example-1″ items=»[объект Object], [объект Object],[объект Object],[объект Object],</ul>
2. <ul id=»example-1″ items=»[object Object],[object Object],[object Object],[object Object],</ul> Это выглядит так при использовании инструментов разработчика Google.
3. что такое $items в контроллере?
4. return view(‘chat.vue’)->with(‘item’, $items); blade <чат-компонент v-bind:item=’@json($items)’></чат-компонент>
Ответ №1:
Просто определите свой реквизит, как показано ниже. Почему вы определяете реквизиты, как указано выше? props:['items']
Ответ №2:
module.exports = new Vue({
Обозначение здесь было неправильным