我在学习 Broadcasting using Vue according to this article

它是 Laravel、Pusher 和 npm

我在 resources/assets/js/app.js 中有以下代码

const app = new Vue({ 
    el: '#app', 
    data: { 
        messages: [] 
    }, 
    methods: { 
        addMessage(message) { 
            this.messages.push(message); 
        } 
    }, 
    created() { 
        axios.get(window.Laravel.AppUrl + "/Messages").then(response => { 
           this.messages = response.data;  
        }); 
    } 
}); 
 
Vue.component('chat-composer', require('./components/ChatComposer.vue')); 

下面是blade中的标签

<chat-composer v-on:messagesent="addMessage"></chat-composer> 

一切正常...问题是上面的 app.js 代码每次都在所有路由上运行。

我在 Angular Js 中制作示例代码,可以选择制作 Controller 、模型和 View 。

有没有办法运行代码,使上述路由仅适用于特定路由?

请您参考如下方法:

您在根 Vue 实例的 created 方法中调用 axios。它将在加载应用程序的每个页面上调用它。将仅某些功能需要的东西移到需要它的组件中。

如果您希望不同的组件出现在不同的页面上,您可以只在页面上呈现您需要的组件,或者考虑在客户端使用 Vue Router


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!