• 3.Vue-在Vue框架中搭建路由


    题记

            以下是在vue框架中搭建路由的全过程,包括全部代码。

    创建路由

            如果你的文件中没有 router文件夹,可以使用以下命令创建:

            vue add router

            注意:生成的路由文件会因为选择的自定义选项不同,而有所差异 

     生成的代码展示

            router文件夹下的index.js代码如下: 

    import { createRouter, createWebHistory } from 'vue-router'

    import HomeView from '../views/HomeView.vue'

    const routes = [

      {

        path: '/',

        name: 'home',

        component: HomeView

      },

      {

        path: '/about',

        name: 'about',

        // route level code-splitting

        // this generates a separate chunk (about.[hash].js) for this route

        // which is lazy-loaded when the route is visited.

        component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')

      }

    ]

    const router = createRouter({

      history: createWebHistory(process.env.BASE_URL),

      routes

    })

    export default router

    1. import { createRouter, createWebHistory } from 'vue-router'
    2. import HomeView from '../views/HomeView.vue'
    3. const routes = [
    4. {
    5. path: '/',
    6. name: 'home',
    7. component: HomeView
    8. },
    9. {
    10. path: '/about',
    11. name: 'about',
    12. // route level code-splitting
    13. // this generates a separate chunk (about.[hash].js) for this route
    14. // which is lazy-loaded when the route is visited.
    15. component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue')
    16. }
    17. ]
    18. const router = createRouter({
    19. history: createWebHistory(process.env.BASE_URL),
    20. routes
    21. })
    22. export default router

             views下的AboutView.vue文件如下:

    1. <template>
    2. <div class="about">
    3. <h1>This is an about pageh1>
    4. div>
    5. template>

            views下的HelloView.vue文件如下: 

    1. <template>
    2. <div class="home">
    3. <img alt="Vue logo" src="../assets/logo.png">
    4. <HelloWorld msg="Welcome to Your Vue.js App"/>
    5. div>
    6. template>
    7. <script>
    8. // @ is an alias to /src
    9. import HelloWorld from '@/components/HelloWorld.vue'
    10. export default {
    11. name: 'HomeView',
    12. components: {
    13. HelloWorld
    14. }
    15. }
    16. script>

            App.vue文件如下:

    1. <template>
    2. <router-view/>
    3. template>
    4. <style>
    5. #app {
    6. font-family: Avenir, Helvetica, Arial, sans-serif;
    7. -webkit-font-smoothing: antialiased;
    8. -moz-osx-font-smoothing: grayscale;
    9. text-align: center;
    10. color: #2c3e50;
    11. }
    12. nav {
    13. padding: 30px;
    14. }
    15. nav a {
    16. font-weight: bold;
    17. color: #2c3e50;
    18. }
    19. nav a.router-link-exact-active {
    20. color: #42b983;
    21. }
    22. style>

            mian.js文件如下: 

    import { createApp } from 'vue'

    import App from './App.vue'

    import router from './router'

    createApp(App).use(router).mount('#app')

    1. import { createApp } from 'vue'
    2. import App from './App.vue'
    3. import router from './router'
    4. createApp(App).use(router).mount('#app')

            main.js文件写成下面这样也是可以的: 

    import { createApp } from 'vue'

    import App from './App.vue'

    import router from './router'

    const app = createApp(App)

    app.use(router)

    app.mount('#app')

    1. import { createApp } from 'vue'
    2. import App from './App.vue'
    3. import router from './router'
    4. const app = createApp(App)
    5. app.use(router)
    6. app.mount('#app')

    自定义路由 

            修改router文件夹下的index.js代码如下: 

    import { createRouter, createWebHistory } from 'vue-router'

    import HomeView from '../views/HomeView.vue'

    const routes = [

      {

        path: '/',

        name: 'home',

        component: HomeView

      },

      {

        path: '/about',

        name: 'about',

        component: () => import( '../views/AboutView.vue')

      },

      // 新建一个test路由

      // path指定了路由的路径,即当用户访问该路径时,该路由会被匹配到什么地方。

      // name为该路由指定一个名称,可以在其他地方使用该名称来引用该路由。

      // component:指定了该路由对应的组件。在这个例子中,使用了动态导入的方式来引入一个名为TestView.vue的组件。

      {

        path: '/test',

        name: 'test',

        component: () => import('../views/TestView.vue')

      }

    ]

    const router = createRouter({

      history: createWebHistory(process.env.BASE_URL),

      routes

    })

    export default router

    1. import { createRouter, createWebHistory } from 'vue-router'
    2. import HomeView from '../views/HomeView.vue'
    3. const routes = [
    4. {
    5. path: '/',
    6. name: 'home',
    7. component: HomeView
    8. },
    9. {
    10. path: '/about',
    11. name: 'about',
    12. component: () => import( '../views/AboutView.vue')
    13. },
    14. // 新建一个test路由
    15. // path指定了路由的路径,即当用户访问该路径时,该路由会被匹配到什么地方。
    16. // name为该路由指定一个名称,可以在其他地方使用该名称来引用该路由。
    17. // component:指定了该路由对应的组件。在这个例子中,使用了动态导入的方式来引入一个名为TestView.vue的组件。
    18. {
    19. path: '/test',
    20. name: 'test',
    21. component: () => import('../views/TestView.vue')
    22. }
    23. ]
    24. const router = createRouter({
    25. history: createWebHistory(process.env.BASE_URL),
    26. routes
    27. })
    28. export default router

     自定义Vue组件

            vue文件要符合命名规范,不然会报错,可以写成TestView.vue的形式

            在views文件夹下新增TestView.vue文件: 

    1. <template>
    2. <div class="test">
    3. <h1>testh1>
    4. div>
    5. template>

     执行程序

            在终端执行以下命令: 

            npm run serve 

            访问:

            localhost:8080 

    展示图 

     后记

            觉得有用可以点赞或收藏!

  • 相关阅读:
    c++调用相机进行保存
    matplotlib做时钟
    shell基础语法总结
    企业如何通过CRM获得竞争力?
    CSS @property,让不可能变可能
    详解linux内核链表list_head及其接口应用
    【Java-----IO流(四)之转换流详解】
    Linux 模块的初始化过程
    windows10录屏神器,轻松保存高光时刻
    UNI-APP apk使用io流进行文件操作
  • 原文地址:https://blog.csdn.net/m0_70819559/article/details/133853791