适用于非SPA应用程序的Vue js-在不使用应用程序组件的情况下加载组件

时间:2019-05-16 09:17:00

标签: javascript reactjs vue.js webpack single-page-application

我非常了解vue js,并且我正在尝试找出有关它的一些信息。我想使用它的一件事是在不创建SPA的情况下实现组件。因此,换句话说,我可以引用静态页面中的组件,而不必使其通过App组件运行。

当我用react Js完成此操作时,我就使用了react栖地。我想知道是否有可用的vue js相似的东西,还是可以使用第三方模块工具来完成的事情。

2 个答案:

答案 0 :(得分:1)

您不需要任何App组件。只需将任何包装器(div)分配给Vue模块(Vue实例)即可。例如,我使用一个组件来检索联系人。

您可以在一个页面中拥有多个Vue应用程序。它们只是不能重叠。

html:

<div class="col-md-4 col-sm-4" id="safeContactsFooter">
 ..some html stuff

     <ul class="phone">
         <li>Phone: <safe-contact type="phone" ></safe-contact></li> 
     </ul>

</div>

Vue模块:

export default new Vue({
    el: '#safeContactsFooter',

    components : {
        'safe-contact' : () => import('./components/Safe contact') ,
    },

});

然后,仅当存在具有正确ID的div时,才必须注册该模块。否则,控制台会向您大喊该对象不存在。我这样做:

if(document.getElementById("safeContactsFooter")){
    import('../Safe contacts/Safe contacts footer.Module.js');
}

答案 1 :(得分:1)

您可以通过将组件导入JavaScript文件并使用引用的元素创建vue实例来做到这一点:

// JS File
import Vue from 'vue';

import YourComponent from './YourComponent.vue';

export default new Vue({
   el: '#app',
   components: { 
     YourComponent
   }
});


// HTML file
<div id="app">
  <your-component></your-component>
</div>