关于Vue中main.js,App.vue,index.html之间关系进行总结

在初始化的 Vue 项目中,我们最先接触到的就是 main.js,App.vue,index.html 这三个文件,我们从培训视频或者官方文档上可以了解到:

 

index.html--- 主页,项目入口

App.vue--- 根组件

main.js--- 入口文件

那么这几个文件之间的联系如何呢?

1. 先看 index.html 中的内容:(为了很好的标识各个文件,我对各文件进行了文字标记)

2. 在 App.vue 中,我做了如下处理:

3. 在 main.js 中,文件初始内容如图:

 

那么我们打卡的网页如何呢?

网页效果如下:

也就是说,在网页的 Title 部分,加载了 index.html 中定义的 Title,而在正文部分,加载了 App.vue 中定义的部分。(但是需要注意的是,在浏览器打开的瞬间,浏览器中正文部分会瞬间显示 index.html 中定义的正文部分

那么,我们就可以来分析上述的逻辑了,浏览器访问项目,最先访问的是 index.html 文件,

而 index.html 中

1
<div id="app">来自index.html正文中的内容</div>

 上面有一个 id 为 app 的挂载点,之后我们的 Vue 根实例就会挂载到该挂载点上

 main.js 作为项目的入口文件,在 main.js 中,新建了一个 Vue 实例,在 Vue 实例中,通过

new Vue({
  el: '#app',
  //components: {App},
  //template: '<App/>'
})

 

告诉该实例要挂载的地方;(即实例装载到 index.html 中的位置

接着,实例中注册了一个局部组件 App,这个局部组件 App 来自于哪儿呢?

import App from './App.vue'

new Vue({
//el: '#app',
components: {App},
//template: '<App/>'
})

这个局部组件是当前目录下的 App.vue;

而起模板是什么呢?模板就是组件 App.vue 中的 template 中的内容。(template 会替代原来的的挂载点处的内容)

 所以 Vue 这个实例就是战士的是 App.vue 这个组件的内容

 所以,我们进行总结:在项目运行中,main.js 作为项目的入口文件,运行中,找到其实例需要挂载的位置,即 index.html 中,刚开始,index.html 的挂载点处的内容会被显示,但是随后就被实例中的组件中的模板中的内容所取代,所以我们会看到有那么一瞬间会显示出 index.html 中正文的内容。

而 index.html 中的 Title 部分不会被取代,所以会一直保留。