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

161 阅读1分钟

index.html

项目的运行入口,在body体中只有一个div标签,其id为app,这个id将会连接到src/main.js内容
在浏览器打开的瞬间,浏览器中正文部分会瞬间显示index.html中定义的正文部分
上面有一个id为app的挂载点,之后我们的Vue根实例就会挂载到该挂载点上


  
  

    
    

     
     

    
    

    
    

     
     

      
      <!DOCTYPE html>
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      <html>
     
     

    
    

    
    

     
     

    
    

    
    

     
     
  
      
      <head>
     
     

    
    

    
    

     
     

    
    

    
    

     
     
    
      
      <meta charset="utf-8">
     
     

    
    

    
    

     
     

    
    

    
    

     
     
    
      
      <meta name="viewport" content="width=device-width,initial-scale=1.0">
     
     

    
    

    
    

     
     

    
    

    
    

     
     
    
      
      <title>y
      
      </title>
     
     

    
    

    
    

     
     

    
    

    
    

     
     
  
      
      </head>
     
     

    
    

    
    

     
     

    
    

    
    

     
     
  
      
      <body>
     
     

    
    

    
    

     
     

    
    

    
    

     
     
    
      
      <div id="app">test
      
      </div>
     
     

    
    

    
    

     
     

    
    

    
    

     
     
    
      
      <!-- built files will be auto injected -->
     
     

    
    

    
    

     
     

    
    

    
    

     
     
  
      
      </body>
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      </html>
     
     

    
    

  
  

main.js

入口文件,主要作用是初始化vue实例,并引入所需要的插件。新建了一个vue实例,并使用el:#app链接到index.html中的app,并使用template引入组件<app>和路由相关的内容,也就是说通过main.js我们关联到App.vue组件


  
  

    
    

     
     

    
    

    
    

     
     

      
      import Vue 
      
      from 
      
      'vue'
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      import App 
      
      from 
      
      './App'
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      import router 
      
      from 
      
      './router'
     
     

    
    

    
    

     
     

    
    

    
    

     
     
 
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      Vue.config.productionTip = 
      
      false
     
     

    
    

    
    

     
     

    
    

    
    

     
     
 
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      /* eslint-disable no-new */
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      new Vue({
     
     

    
    

    
    

     
     

    
    

    
    

     
     
    
      
      el: 
      
      '#app',
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
          router,
     
     

    
    

    
    

     
     

    
    

    
    

     
     
    
      
      components: { App },
     
     

    
    

    
    

     
     

    
    

    
    

     
     
    
      
      template: 
      
      '<App/>'
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      })
     
     

    
    

  
  

App.vue

主组件,所有页面都是在App.vue下进行切换的。可以理解为所有的路由router也是App.vue的子组件。


  
  

    
    

     
     

    
    

    
    

     
     

      
      <template>
     
     

    
    

    
    

     
     

    
    

    
    

     
     
  
      
      <div id="app">
     
     

    
    

    
    

     
     

    
    

    
    

     
     
    
      
      <router-view/>
     
     

    
    

    
    

     
     

    
    

    
    

     
     
  
      
      </div>
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      </template>
     
     

    
    

    
    

     
     

    
    

    
    

     
     
 
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      <script>
      
      
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      export 
      
      default {
     
     

    
    

    
    

     
     

    
    

    
    

     
     
  
      
      name: 
      
      'App'
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      }
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      </script>
     
     

    
    

  
  

Index.js

<template>标签下,有<router-view>标签,<router-view>标签将会把路由相关内容渲染在这个地方,路由中文件位于src/router/index.js中。
在index.js的代码中,建立了路由相关的内容,也就会渲染到app.vue下面的<router-view>中。


  
  

    
    

     
     

    
    

    
    

     
     

      
      import Vue 
      
      from 
      
      'vue'
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      import Router 
      
      from 
      
      'vue-router'
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      import HelloWorld 
      
      from 
      
      '@/components/HelloWorld'
     
     

    
    

    
    

     
     

    
    

    
    

     
     
 
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      Vue.use(Router)
     
     

    
    

    
    

     
     

    
    

    
    

     
     
 
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      export 
      
      default 
      
      new Router({
     
     

    
    

    
    

     
     

    
    

    
    

     
     
  
      
      routes: [
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
          {
     
     

    
    

    
    

     
     

    
    

    
    

     
     
      
      
      path: 
      
      '/',
     
     

    
    

    
    

     
     

    
    

    
    

     
     
      
      
      name: 
      
      'HelloWorld',
     
     

    
    

    
    

     
     

    
    

    
    

     
     
      
      
      component: HelloWorld
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
          }
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
        ]
     
     

    
    

    
    

     
     

    
    

    
    

     
     

      
      })
     
     

    
    

  
  

项目加载的过程是index.tml->main.js->app.vue->index.js->helloworld.vue。