项目结构
- build:跟打包工具webpack有关的代码
- config: 配置信息
- node_modules:当前项目所有依赖
- src:之后编写代码的文件夹
- static:一些静态资源文件
- 其他:.babelrc是babel的配置文件(做语法转义等),index.html是首页内容,package.json是npm依赖包的声明信息,package-lock.json依赖的详细信息
项目逻辑
index.html是我们的主入口页面,只有一个div标签id是app
src中main.js是我们的主程序
1.主要创建了一个Vue实例,挂载了index.html中id为app的元素
2.使用了router下的路由规则
3.导入了App组件
4.指定了一个模板,使用了App组件,App组件长什么样,最终index.html中对应的app元素就长什么样
于是来看到App组件。这是一个标准的vue单文件组件,template标签表示该显示成什么样,其中显示了一个图片,图片下面显示什么,由router-view这个路由视图决定
main.js已经引入了router,如下,规定了在根页面显示引入的HelloWord组件
HelloWord组件如下:
<template>
<div class="hello">
<h1>{{ msg }}</h1>
<h2>Essential Links</h2>
<ul>
<li>
<a
href="https://vuejs.org"
target="_blank"
>
Core Docs
</a>
</li>
<li>
<a
href="https://forum.vuejs.org"
target="_blank"
>
Forum
</a>
</li>
<li>
<a
href="https://chat.vuejs.org"
target="_blank"
>
Community Chat
</a>
</li>
<li>
<a
href="https://twitter.com/vuejs"
target="_blank"
>
Twitter
</a>
</li>
<br>
<li>
<a
href="http://vuejs-templates.github.io/webpack/"
target="_blank"
>
Docs for This Template
</a>
</li>
</ul>
<h2>Ecosystem</h2>
<ul>
<li>
<a
href="http://router.vuejs.org/"
target="_blank"
>
vue-router
</a>
</li>
<li>
<a
href="http://vuex.vuejs.org/"
target="_blank"
>
vuex
</a>
</li>
<li>
<a
href="http://vue-loader.vuejs.org/"
target="_blank"
>
vue-loader
</a>
</li>
<li>
<a
href="https://github.com/vuejs/awesome-vue"
target="_blank"
>
awesome-vue
</a>
</li>
</ul>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
msg: 'Welcome to Your Vue.js App'
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
font-weight: normal;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
</style>
于是就可以理解为什么首页会显示成如下这样了: