Я могу настроить Laravel Echo с Pusher и установить все необходимые зависимости. У меня есть учебники по Lynda и Laracast, как это сделать, но они старые и не для этих версий в заголовке этого вопроса. Итак, из того, что я узнал до сих пор от Линды и Ларакаста, я должен запускать Vue из шаблона blade-сервера, но я не смогу выполнить эту работу, если не добавлю вручную эту строку кода <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
в мой blade-движок. я уверен, что это не так, как надо, поскольку я получаю два экземпляра vue, добавив эту строку кода в мой шаблон blade-сервера. Я не могу заставить это работать, поскольку я получаю Vue is not defined
, если я использую это в своем шаблоне лезвия таким образом:
let app = new Vue({
el: '#app',
data() {
return {
...
}
},
)}
Таким образом, даже когда я запускаю два экземпляра Vue, я не могу заставить работать эхо-сигнал от Blade, так как при его использовании я получаю Echo is not defined
, например, используя этот код:
Echo.join('form.' + '{{ $product->id }}')
.here((users) => {
this.count = users.length;
});
Я также пытался использовать window
так:
window.Echo.join('form.' + '{{ $product->id }}')
.here((users) => {
this.count = users.length;
});
Но таким образом я получаю Cannot read property 'join' of undefined"
Так что в основном я заблудился, пытаясь понять, как правильно использовать vue внутри клинка + эхо-сигнал и толчок js.
ОБНОВЛЕНО
вот мой файл app.js:
require('./bootstrap');
window.Vue = require('vue');
Vue.component('search-component', require('./components/Search.vue'));
и вот мой файл boostrap.js:
window._ = require('lodash');
window.Popper = require('popper.js').default;
try {
window.$ = window.jQuery = require('jquery');
require('bootstrap');
} catch (e) {}
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
let token = document.head.querySelector('meta[name="csrf-token"]');
if (token) {
window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
} else {
console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
}
import Echo from 'laravel-echo'
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: true
});