zoukankan      html  css  js  c++  java
  • Vue学习笔记-Vue.js-2.X 学习(七)===>脚手架Vue-CLI(路由Router)

    脚手架Vue-CLI(路由Router)

    按装(通过新创建脚手架按装),如果在原来的脚手架上按装直接进图型化界面vue ui的插件按装.

    二 使用(上面按装下面步骤自动会生成)

    第一步:导入路由对象,并且调用Vue.use(VueRouter)

    第二步:创建路由实例,并且传入路由映射配置

    第三步:导出路由实例

    第四步:在Vue实例中挂载创建的路由实例

    第五步:使用路由,通过<router-link><router-view>

    <router-link>是vuerouter内置的一个组件,默认被渲染成为一个<a>标签(还可以渲染成其它标签,后面补充)

    <router-view>该标签会根据当前的路径,动态渲染出不同的组件,组件占位,放到哪里就会把对应的组件渲染到哪里

    1.入口代码: main.js

    //项目的启动入口
    //导入文
    import Vue from 'vue'
    import App from './App.vue'
    import router from './router'
    
    //发布产品终端下显示提示(true)
    Vue.config.productionTip = false
    
    //创建Vue根实例,配置路由router
    new Vue({
      router, // 第四步:在Vue实例中挂载创建的路由实例
      render: h => h(App)
    }).$mount('#app')
    入口代码:main.js

    2.单页面的入口节点代码: public下的 index.html

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width,initial-scale=1.0">
        <link rel="icon" href="<%= BASE_URL %>favicon.ico">
        <title><%= htmlWebpackPlugin.options.title %></title>
      </head>
      <body>
        <noscript>
          <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
        </noscript>
        <!-- 单页面的入口节点-->
        <!-- 最终所有组件会被render替换渲染到这里-->
        <div id="app"></div>
        <!-- built files will be auto injected -->
      </body>
    </html>
    单页面的入口节点代码: public下的 index.html

    3.根组件代码: App.vue

    <template>
    <!--根组件-->
      <div id="app">
    <!--第五步:使用路由,通过<router-link>和<router-view>-->
        <div id="nav">
          <router-link to="/">Home</router-link> |
          <router-link to="/about">About</router-link>
        </div>
        <!--路由出口,组件占位,组件渲染显示的位置-->
        <router-view/>
      </div>
    </template>
    
    <style>
    #app {
      font-family: Avenir, Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
    }
    
    #nav {
      padding: 30px;
    }
    
    #nav a {
      font-weight: bold;
      color: #2c3e50;
    }
    
    #nav a.router-link-exact-active {
      color: #42b983;
    }
    </style>
    根组件代码: App.vu

    4.路由代码: router下的index.js

    import Vue from 'vue'
    import VueRouter from 'vue-router'
    import Home from '../views/Home.vue' //导入Home组件
    
    // 第一步:导入路由对象,并且调用Vue.use(VueRouter)
    Vue.use(VueRouter)
    // 第二步:创建路由实例,并且传入路由映射配置,一个组件一个映射关系
    const routes = [
      {
        path: '/',   //显示组件路径
        // component: Home  //组件名,路径显示为:http://localhost:8080/#/
        redirect: '/Home'  //重定向到首页,路径显示为:http://localhost:8080/#/Home
      },
      {
        path: '/Home',   //显示组件路径
        name: 'Home',
        component: Home  //组件名
      },
      {
        path: '/about',  //显示组件路径
        name: 'About',  //组件名
        // 懒加载,当访问路由时延迟加载.导入About组件
        component: () => import(
            /* webpackChunkName:
             "about" */ '../views/About.vue'
            )
      }
    ]
    // 第三步:导出 routes 为 router
    const router = new VueRouter({
      routes
    })
    export default router
    路由代码: router下的index.js

    5.路由映射配置重定向配置redirect

    import Vue from 'vue'
    import VueRouter from 'vue-router'
    import Home from '../views/Home.vue' //导入Home组件
    
    // 第一步:导入路由对象,并且调用Vue.use(VueRouter)
    Vue.use(VueRouter)
    // 第二步:创建路由实例,并且传入路由映射配置,一个组件一个映射关系
    const routes = [
      {
        path: '/',   //显示组件路径
        // component: Home  //组件名,路径显示为:http://localhost:8080/#/
        redirect: '/Home'  //重定向到首页,路径显示为:http://localhost:8080/#/Home
      },
      {
        path: '/Home',   //显示组件路径
        name: 'Home',
        component: Home  //组件名
      },
      {
        path: '/about',  //显示组件路径
        name: 'About',  //组件名
        // 懒加载,当访问路由时延迟加载.导入About组件
        component: () => import(
            /* webpackChunkName:
             "about" */ '../views/About.vue'
            )
      }
    ]
    // 第三步:导出 routes 为 router
    const router = new VueRouter({
      routes
    })
    export default router
    路由映射配置重定向配置redirect

     6.路由的默认值模式和history模式(路由中有无#号)

    默认哈希模式显示: http://localhost:8080/#/Home,
    history模式显示: http://localhost:8080/Home
    import Vue from 'vue'
    import VueRouter from 'vue-router'
    import Home from '../views/Home.vue' //导入Home组件
    
    // 第一步:导入路由对象,并且调用Vue.use(VueRouter)
    Vue.use(VueRouter)
    // 第二步:创建路由实例,并且传入路由映射配置,一个组件一个映射关系
    const routes = [
        {
            path: '/',   //显示组件路径
            // component: Home  //组件名,路径显示为:http://localhost:8080/#/
            redirect: '/Home'  //重定向到首页,路径显示为:http://localhost:8080/#/Home
        },
        {
            path: '/Home',   //显示组件路径
            name: 'Home',
            component: Home  //组件名
        },
        {
            path: '/about',  //显示组件路径
            name: 'About',  //组件名
            // 懒加载,当访问路由时延迟加载.导入About组件
            component: () => import(/* webpackChunkName:"about" */ '../views/About.vue')
        }
    ]
    // 第三步:导出 routes 为 router
    const router = new VueRouter({
        routes,
        mode:'history' //默认哈希模式http://localhost:8080/#/Home,html5中history模式,http://localhost:8080/Home
    })
    export default router
    路由的默认值模式和history模式 

    7.<router-link>属性补充

    to属性: <router-link to="/">Home</router-link> 默认渲染成<a>标签

    tag属性: <router-link to="/" tag="button">Home</router-link> 渲染成<button>按钮,可以渲染成其它标签

    replace属性: <router-link to="/" replace">Home</router-link> 网页返回按钮不起作用,多个<router-link>同时加上

    active-class属性: 当<router-link>对应的路由匹配成功时,会自动给当前元素设置一个rouer-link-active 的class(class="router-link-active)

    <template>
    <!--根组件-->
      <div id="app">
    <!--第五步:使用路由,通过<router-link>和<router-view>-->
        <div id="nav">
          <!--默认渲染成<a>标签-->
    <!--      <router-link to="/">Home</router-link> |-->
          <!--tag="button"渲染成<button>按钮-->
    <!--      <router-link to="/" tag="button">Home</router-link> |-->
          <!--replace网页返回按钮不起作用,多个<router-link>同时加上-->
          <router-link to="/" replace>Home</router-link> |
          <router-link to="/about" replace>About</router-link>
        </div>
        <!--路由出口,组件占位,组件渲染显示的位置-->
        <router-view/>
      </div>
    </template>
    
    <style>
    #app {
      font-family: Avenir, Helvetica, Arial, sans-serif;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-align: center;
      color: #2c3e50;
    }
    
    #nav {
      padding: 30px;
    }
    
    #nav a {
      font-weight: bold;
      color: #2c3e50;
    }
    
    #nav a.router-link-exact-active {
      color: #42b983;
    }
    </style>
    router-link属性补充

     8.动态路由

     

  • 相关阅读:
    SQLite在php中的接口
    Smarty3——内置函数
    Smarty3——foreach
    Smarty3——复合变量修饰器输
    Smarty3——从配置文件获取的变量
    Smarty3——变量修饰器
    Git命令
    容器云----docker-registry+docker-registry-web(镜像仓库+镜像仓库管理界面)
    容器云----kubernetes-dashboard(kubernetes管理界面)
    容器云----kubernetes+docker-ce
  • 原文地址:https://www.cnblogs.com/djtang/p/14102315.html
Copyright © 2011-2022 走看看