Компоненты Laravel 5.8 и Vue.js - PullRequest
0 голосов
/ 27 апреля 2019

Я новичок в использовании Vue.js и пытаюсь научиться внедрять систему оценки для рецептов в моем приложении Laravel, используя vue-star-rating. Первое, что я хочу узнать, это как создавать компоненты, а затем включать их в мои представления блейдов. Уже здесь я сталкиваюсь с неприятностями. Пытаюсь включить ExampleComponent.vue, который поставляется с Laravel из коробки, но я не понимаю, как мне включить его в мой блейд-файл. Верх моего блейд-файла выглядит так

Вид лезвия

<div class="col-sm-6">
                <div class="container recipeDesc">
                    <h2 class="text-center name">{{$recipe->title}}</h2>
                        <div class="stars">
                            <i class="fas fa-star"></i>
                            <i class="fas fa-star"></i>
                            <i class="fas fa-star"></i>
                            <i class="fas fa-star"></i>
                            <i class="fas fa-star"></i>
                        </div>

                        <div id="app">
                            <example-component></example-component>
                        </div>

JS-файл по умолчанию

/**
 * First we will load all of this project's JavaScript dependencies which
 * includes Vue and other libraries. It is a great starting point when
 * building robust, powerful web applications using Vue and Laravel.
 */

require('./bootstrap');

window.Vue = require('vue');

/**
 * The following block of code may be used to automatically register your
 * Vue components. It will recursively scan this directory for the Vue
 * components and automatically register them with their "basename".
 *
 * Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
 */

// const files = require.context('./', true, /\.vue$/i)
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default))

Vue.component('example-component', require('./components/ExampleComponent.vue').default);

/**
 * Next, we will create a fresh Vue application instance and attach it to
 * the page. Then, you may begin adding components to this application
 * or customize the JavaScript scaffolding to fit your unique needs.
 */

const app = new Vue({
    el: '#app',
    components: {
        'example-component': require('./components/ExampleComponent.vue'),
    }
});

Как бы я включил ExampleComponent.vue в этот div? Трудно понять это, даже когда читаешь документацию Vue.js. Спасибо!

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Перед тегом окончания тела вы должны включить источник сценария vue, чтобы иметь возможность реализовать его в своих представлениях: <script src="{{ asset('js/app.js') }}"></script></body>

0 голосов
/ 27 апреля 2019

Если у вас все еще есть js-файлы по умолчанию для установки Laravel, в вашем файле resources / js / app.js должно быть следующее:

Vue.component('example-component', require('./components/ExampleComponent.vue').default);

const app = new Vue({
    el: '#app'
});

В первой строке указано, что имяВ качестве примера компонента следует использовать example-component, поэтому, чтобы включить его в свой блэйд-вид, просто напишите это:

<example-component/>

Второй блок в файле app.js сообщает вамэтот Vue будет работать с элементом с id = "app", поэтому вы должны убедиться, что у вас есть div с этим идентификатором в макете, если вы хотите использовать компоненты Vue.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...