Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js中的页眉和页脚组件_Vue.js_Vuejs2 - Fatal编程技术网

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

Vue.js中的页眉和页脚组件,vue.js,vuejs2,Vue.js,Vuejs2,我正在学习Vue.js,我没有使用cli安装Vue.js,我只是下载了Vue.js文件并尝试学习它 我的问题是将header.vue和footer.vue等组件外部化,并将它们添加到主组件中 我使用了Vue.component('MyHeader',require('./components/Header.Vue')加载组件,但我遇到了类似于“未捕获引用错误:未定义require”的错误 为了解决此错误,我从下载了require.js文件,但仍然无法加载组件文件 文件夹结构 <templa

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

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

我使用了
Vue.component('MyHeader',require('./components/Header.Vue')
加载组件,但我遇到了类似于
“未捕获引用错误:未定义require”
的错误

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

文件夹结构

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

index.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 js的路由文件
组件(“testcomponent”{
模板:“我是测试组件”
});
组件('MyHeader',require('./components/Header.Vue');
组件('MyFooter',require('./components/Footer.Vue');
//从“./components/Header.vue”导入MyHeader
//从“./components/Footer.vue”导入MyFooter
var app=新的Vue({
el:“根”,
组成部分:{
我的头,
我的页脚
},
数据:{
},
方法:{
}
});
标题.vue

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

我是头球手
Footer.vue

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

我是页脚

正如评论中所说,您需要一个生成工具来使用.vue文件。但是,通过使用plain.js文件,您可以获得组件的所有优点,除了作用域css

将模板放入.js模板字符串中,然后使用旧方法调用组件,使用
,或者使用requirejs调用它们,但它们必须是普通的.js文件,而不是.vue。

单文件组件(.vue) 您需要vue loader将.vue文件转换为标准js格式。
如果您将在上阅读文档,基本上需要使用webpack或browserify来使用.vue文件扩展名。

如果您刚刚开始使用vue和所有JS魔法,我将研究vue cli安装方法。它应该安装webpack和单页组件所需的所有东西,然后您可以反向工作来解构该设置的各个部分

您还可以查看vue GitHub repos中的示例

该示例使用vuex和单文件组件,但它是可靠的。

CommonJS使用
require
(不要与使用AMD的
require.js
混淆):
而不是创建
Header.vue
create
Header.js
,然后您可以像这样要求它:

module.exports = { 
  template: `<template>
      <h1>I am Header</h1>
    </template>` 
}
要使用
.vue
组件文件和结构化,您需要
vue网页包加载器
和一个构建堆栈,其中包括webpackbrowserify


您是否使用任何构建工具将
.vue
文件转换回javascript?不,我没有使用任何工具,我显示许多人使用.vue文件存储组件根据,如果您想使用
.vue
单文件组件,您需要一个构建工具。我强烈建议您使用优秀的.vue而不是
Header.vue
create
Header.js
:module.exports={template:`I am Header}来避免设置自己的构建堆栈所带来的巨大痛苦`我使用npm install--global webpack安装了webpack,然后使用cd xampp\htdocs\vuejsdemo移动到我的项目目录,然后键入npm init,然后键入webpack indexController.js bundle.js,但仍然收到类似“error in./components/Header.vue Module parse failed:意外令牌(1:0)”的错误@JunedAnsari我希望您需要从vue cli基本代码开始,您可以在此处找到它。