【问题标题】:How do I imbed Vue/Vuetify components within other Vue/Vuetify components within Laravel?如何在 Laravel 的其他 Vue/Vuetify 组件中嵌入 Vue/Vuetify 组件?
【发布时间】:2021-03-27 15:52:21
【问题描述】:

今年初我给自己定了一个目标,学习 Laravel、Vue 和 Vuetify,这些我以前都没有使用过。这已被证明是相当困难的,因为 Laravel 的大多数教程和视频都没有涉及 Vue,大多数 Vue 材料都没有涉及如何在 Laravel 中使用 Vue,而且到目前为止我找到的材料都没有讨论如何使用使用 Vue 组件在 Laravel 环境中进行 Vuetify。这意味着很难找到我的一些问题的答案。我现在在 Laravel 中使用了 Vue,也让 Vuetify 在基本级别上工作,但我仍在为某些基础知识而苦苦挣扎。

具体来说,我试图弄清楚如何制作一个在 Laravel 中使用 Vuetify 的 Vue 组件,以在 Laravel 中嵌入 另一个 Vue 组件。我已经编写了一个基本的待办事项列表 CRUD,它在一个 Vue 组件中运行得相当好。我想知道是否可以在单独的 Vue 组件(使用 Vuetify)中分别拥有我的 Logo(在 v-toolbar 中)和页脚,然后将它们嵌入到主组件中?

如果它可能的,它会是什么样子?我尝试将我的徽标(它是一个 v-toolbar)放在它自己的组件中,但我无法正确注册它。

这是我的组件,名为 Logo.vue:

<template>
    <v-toolbar dark src="images/fence.jpg" max-height="60">
    <v-app-bar-nav-icon></v-app-bar-nav-icon>
      <v-toolbar-title>Different Logo</v-toolbar-title>
    </v-toolbar>
</template>

<script>
export default { 
}
</script>

<style scoped>
</style>

这是我的主要组件,称为 VuetifyComponent.vue,大部分主体被剥离,因为它无关紧要:

<template>
  <v-app>

    <v-toolbar
      dark
      src="https://cdn.vuetifyjs.com/images/backgrounds/vbanner.jpg"
      max-height="60"
    >
      <v-app-bar-nav-icon></v-app-bar-nav-icon>
      <v-toolbar-title>LaraVuetify To Do List</v-toolbar-title>

    </v-toolbar>

    <Logo></Logo>

  </v-app>
</template>

这是我的 app.js 尝试注册两个组件:

require('./bootstrap');

window.Vue = require('vue');

import Form from './Form'
window.Form = Form

import Vuetify from 'vuetify'
Vue.use(Vuetify);
    
Vue.component('vuetify-component', require('./components/VuetifyComponent.vue').default);
Vue.component('Logo', require('./components/Logo.vue').default);

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

这是来自我的浏览器的消息:

[Vue warn]: Unknown custom element: <Logo> - did you register the component correctly? For recursive components, make sure to provide the "name" option.

found in

---> <VuetifyComponent> at resources/js/components/VuetifyComponent.vue
       <Root>

【问题讨论】:

    标签: laravel vuejs2 vuetify.js


    【解决方案1】:

    原来我做错了一件小事。 logo 组件应该使用小写的“logo”而不是“Logo”注册,换句话说:

    Vue.component('logo', require('./components/Logo.vue').default);
    

    我的 VuetifyComponent 中的标签应该是 &lt;logo&gt;&lt;/logo&gt;

    通过这些微小的更改,我已经证明即使两个 Vue 组件都使用 Vuetify 并且两个组件都在 Laravel 中,我也可以将一个组件嵌入到另一个组件中。

    【讨论】:

      猜你喜欢
      • 2020-08-08
      • 2020-09-10
      • 2020-08-16
      • 2022-09-30
      • 2022-12-01
      • 2019-07-24
      • 1970-01-01
      • 2018-03-05
      • 2020-08-02
      相关资源
      最近更新 更多