Vue.js 中的页眉和页脚组件

新手上路,请多包涵

我正在学习 Vue.js,我没有使用 cli 安装 Vue.js,我只是下载了 Vue.js 文件并尝试学习它。

我的问题是将 header.vue 和 footer.vue 等组件外部化并将它们添加到主组件中。

我使用 Vue.component('MyHeader', require('./components/Header.vue')); 加载组件,但我收到了类似 "Uncaught ReferenceError: require is not defined" 的错误。

为了解决这个错误,我从 这里 下载了 require.js 文件,但我仍然无法加载组件文件。

文件夹结构

在此处输入图像描述

索引.html

 <!DOCTYPE html>
<html>
<head>
    <title>this is example of header and footer</title>
</head>
<body>

<div id='root'>
   <testcomponent></testcomponent>
   <MyHeader></MyHeader>
   <div>I am Content</div>
   <MyFooter></MyFooter>
</div>

<!-- we need this two files for vue js -->
<script type="text/javascript" src="vue.js"></script>
<script type="text/javascript" src="require.js"></script>
<!-- End of we need this two files for vue js -->
<script type="text/javascript" src="indexController.js"></script>
</body>
</html>

indexController.js

 //rout file for vue js

Vue.component("testcomponent",{
    template:'<p>I am Test Component</p>'
});

Vue.component('MyHeader', require('./components/Header.vue'));
Vue.component('MyFooter', require('./components/Footer.vue'));

//import MyHeader from './components/Header.vue'
//import MyFooter from './components/Footer.vue'

var app = new Vue({
    el: "#root",
    components: {
        MyHeader,
        MyFooter
    },
    data: {

    },
    methods:{

    }

});

头文件.vue

 <template>
    <h1>I am Header</h1>
</template>

页脚.vue

 <template>
    <h1>I am Footer</h1>
</template>

原文由 Juned Ansari 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 908
2 个回答

单个文件组件 (.vue)

您需要 vue-loader 将 .vue 文件转换为普通的 js 格式。如果您将阅读 https://v2.vuejs.org/v2/guide/single-file-components.html 上的文档,则基本上需要使用 webpack 或 browserify 来使用 .vue 文件扩展名。

原文由 Dencio 发布,翻译遵循 CC BY-SA 4.0 许可协议

CommonJS 使用 require (不要与使用 AMDrequire.js 混淆):

而不是 Header.vue 创建 Header.js 然后你可以像你一样要求它:

 module.exports = {
  template: `<template>
      <h1>I am Header</h1>
    </template>`
}

ES6 导出/导入

如果你想使用 ES6 import 而不是 require ,这将是 Header.js 的内容:

 export default {
  template: `<template>
      <h1>I am Header</h1>
    </template>`
}

要使用 .vue 组件文件和结构,您需要 vue-webpack-loader 和涉及 webpackbrowserify 之类的构建堆栈。

https://v2.vuejs.org/v2/guide/single-file-components.html#For-Users-New-to-Module-Build-Systems-in-JavaScript

原文由 connexo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题