簡體   English   中英

在Laravel中定義Vue組件

[英]Define vue component in Laravel

我正在使用VueJS在視圖中加載我的數據(使用Laravel)。 我確實在app.js文件中注冊了組件,當我想在我的刀片文件之一中使用它們時,出現了以下錯誤:

(未知的自定義元素:-您是否正確注冊了組件?對於遞歸組件,請確保提供“名稱”選項。)

我的app.js文件:

require('./bootstrap');
Vue.component('example', require('./components/Example.vue'));

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

Vue.component(
    'passport-clients',
    require('./components/passport/Clients.vue')
);

Vue.component(
   'passport-authorized-clients',
   require('./components/passport/AuthorizedClients.vue')
);

Vue.component(
   'passport-personal-access-tokens',
   require('./components/passport/PersonalAccessTokens.vue')
);

Vue.component('employer-enquiry-names', 
require('./components/Employer/Enquiry/Edit/Names.vue'));
Vue.component('employer-enquiry-users', 
require('./components/Employer/Enquiry/Edit/Users.vue'));
Vue.component('employer-enquiry-employer', 
require('./components/Employer/Enquiry/Edit/Employer.vue'));

在這里,我使用了我的組件:

<div class="tab-content" id="enquiry_tabs">
   <employer-enquiry-employer ref="employer_enquiry_employer">

  </employer-enquiry-employer>

  <employer-enquiry-users ref="employer_enquiry_users">
  </employer-enquiry-users>

  <div class="tab-pane fade" id="names">
       <employer-enquiry-names ref="employer_enquiry_names" >
        </employer-enquiry-names>
   </div>
 </div>



 <script>
     var vm = new Vue({ el: '#enquiry_tabs' });
     vm.$refs.employer_enquiry_employer.loadData();
     $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
         var activatedTab = e.target; // activated tab
         if (activatedTab.id == "names_link") {
            vm.$refs.employer_enquiry_names.loadData();
         } else if (activatedTab.id == "users_link") {
            vm.$refs.employer_enquiry_users.loadData();
         } else if (activatedTab.id == "employer_link") {
             vm.$refs.employer_enquiry_employer.loadData();
         }
      });
  </script>

誰能幫我解決這個問題?

在實例化根vue實例之前注冊vue組件

    require('./bootstrap');

// register components

Vue.component('example', require('./components/Example.vue'));

Vue.component(
    'passport-clients',
    require('./components/passport/Clients.vue')
);

Vue.component(
   'passport-authorized-clients',
   require('./components/passport/AuthorizedClients.vue')
);

Vue.component(
   'passport-personal-access-tokens',
   require('./components/passport/PersonalAccessTokens.vue')
);

Vue.component('employer-enquiry-names', 
require('./components/Employer/Enquiry/Edit/Names.vue'));
Vue.component('employer-enquiry-users', 
require('./components/Employer/Enquiry/Edit/Users.vue'));
Vue.component('employer-enquiry-employer', 
require('./components/Employer/Enquiry/Edit/Employer.vue'));

//instantiate root vue instance

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

注意:請勿將root vue實例安裝在body元素上。 最好創建一個具有#app的id的wrapper元素, #app在該wrapper元素上安裝vue實例。

在建議警告的vue 2.0中不建議使用此方法。 查看發行說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM