将 VueJs 模态组件添加到 Laravel 模板

Posted

技术标签:

【中文标题】将 VueJs 模态组件添加到 Laravel 模板【英文标题】:Add VueJs modal component to Laravel template 【发布时间】:2019-05-23 19:13:43 【问题描述】:

关于简单情况的问题,我想将 vue modal component 添加到默认的 Laravel 项目中。 当我以这种方式注册时:

Vue.component('modal', 
  template: '#modal-template'
)

new Vue(
  el: '#app',
  data: 
    showModal: false
  
)

并像这样命名组件:

ModalComponent.vue

浏览器给我下一个错误。 Github repository中的所有详细信息

顺便说一句,用 jQuery 从引导程序中添加模态窗口可能会更好,否则会很乱?

【问题讨论】:

你试过我的答案了吗 你的回答真棒,但我得到了错误i.imgur.com/Glhtf6x.png 在简单的谷歌之后,我添加了参数默认值,它有帮助。现在是这样的:Vue.component('modal', require('./components/ModalComponent.vue').default);非常感谢 抱歉,由于我错过了在组件文件中添加 script 部分和 export default 在其中,我通过添加它来编辑我的答案,你不需要 .default 太棒了,这个错误帮助我更好地理解 Vue 【参考方案1】:

你应该有:

   Vue.component('modal', require('./components/ModalComponent.vue'));

在您的ModalComponent.vue 文件中:

<template>
<transition name="modal">
    <div class="modal-mask">
      <div class="modal-wrapper">
        <div class="modal-container">

          <div class="modal-header">
            <slot name="header">
              default header
            </slot>
          </div>

          <div class="modal-body">
            <slot name="body">
              default body
            </slot>
          </div>

          <div class="modal-footer">
            <slot name="footer">
              default footer
              <button class="modal-default-button" @click="$emit('close')">
                OK
              </button>
            </slot>
          </div>
        </div>
      </div>
    </div>
  </transition>
</template>
<script>
  export default 

  
</script>

view.blade.php

<div id="app">
  <button id="show-modal" @click="showModal = true">Show Modal</button>
  <!-- use the modal component, pass in the prop -->
  <modal v-if="showModal" @close="showModal = false">
    <!--
      you can use custom content here to overwrite
      default content
    -->
    <h3 slot="header">custom header</h3>
  </modal>
</div>

【讨论】:

以上是关于将 VueJs 模态组件添加到 Laravel 模板的主要内容,如果未能解决你的问题,请参考以下文章

VueJs 向模态组件发送数据

如何将vuejs组件与laravel后台仪表盘分离设计。

将 Vuetify 添加到我的 laravel/Vue 应用程序会破坏一些 laravel 组件 css

将 VueJS 添加到 Laravel 但继续使用 Laravel 的路由器等

Laravel VueJS - 输入值数组返回字符串而不是数组

将 Google Maps VueJS 组件 (vue2-google-maps) 集成到 Laravel 刀片视图中