【VUE】5、VUE项目中引入vue-router

1、初识 vue-router

vue-router 也叫 vue 路由,根据不同的路径,来执行不同的组件

2、安装 vue-router

npm install vue-router --save

就会发现,在 package.json 文件中,增加了如下内容:

"dependencies": {
  "vue-router": "^3.6.5"
},

表示安装成功

3、引入 vue-router

  • 1、router/index.js 文件

在 src 目录下新建 router 目录,并在 router 目录下新建一个 index.js 文件

src/router/index.js

文件内容如下:

import Vue from 'vue'
import Router from 'vue-router'

import Demo1 from '../components/Demo1'

Vue.use(Router);

// 设置组件映射规则
const routes = [
    {
        path: "/",
        redirect: "/demo1"
    },
    {
        path: '/demo1',
        component: Demo1
    }, {
        path: '/demo2',
        component: (resolve) => require(['@/components/Demo2'], resolve)
    }
]

export default new Router({
    routes
})
  • 可以通过 redirect 来实现重定向,我们将默认路由重定向到 demo1
  • 展示了两种组件引入方式:

1、import Demo1 from ‘…/components/Demo1’
2、component: (resolve) => require([‘@/components/Demo2’], resolve)

  • 2、main.js 文件
import Vue from 'vue'
import App from './App.vue'
import router from './router'

Vue.config.productionTip = false

new Vue({
    render: h => h(App),
    router
}).$mount('#app')

引入我们创建的 router/index.js 文件,并将它挂载到我们的 vue 实例上

  • 3、App.vue
<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
    <router-view/>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'App',
  components: {
    HelloWorld
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

即根据路由映射出的组件将会在 router-view 标签内展示

<router-view/>
  • 4、Demo1.vue
<template>
  <div>这是 demo1.vue</div>
</template>

<script>
export default {
  name: "Demo1"
}
</script>

<style scoped>

</style>

4、访问路由

http://localhost:8080

【VUE】5、VUE项目中引入vue-router_第1张图片
可以看到 Demo1.vue 组件被加载,路由也被重定向到:

http://localhost:8080/#/demo1

如您在阅读中发现不足,欢迎留言!!!

你可能感兴趣的:(#,VUE,vue.js,javascript,前端,vue-router)