zoukankan      html  css  js  c++  java
  • vue-router使用入门

    安装及基本配置

    # 安装
    npm install vue-router
    
    # 使用
    import Vue from 'vue'
    import VueRouter from 'vue-router'
    Vue.use(VueRouter)
    export default new Router({
      routes: [
        {
          path: '/',
          component: Index
        },
        {
          path: '/about',
          component: About
        },
        {
          path: '/login',
          component: Login
        }
      ]
    })
    
    

    传参和参数获取

    属性传参

    # 路由
    {
      path: 'info/:name',
      ...
    }
    
    # 参数配置
    <router-link to="/info/张三">张三</router-link>
    
    # 获取
    {{$route.params.name}} // 张三
    

    哈希传参

    # 路由
    {
      path: 'info',
      ...
    }
    
    # 参数配置
    <router-link to="/info?name=李四&age=23">关于</router-link>
    
    # 获取
    {{$route.params.name}} // 李四 23
    

    子路由

    在路由中嵌套children,实现子路由配置, 子路由必须配置专属的router-view,用于页面渲染。

    {
      path: '/profile',
      component: Profile,
      children: [
        {
          path: 'info/:name',
          components: {
            asideContent: Infos
          }
        },
        {
          path: 'star',
          components: {
            asideContent: Star
          }
        }
      ]
    }
    

    手动访问和传参

    路由配置:

    {
      path: '/logout/:name',
      name: 'logout', // 在手动跳转的路由中使用
      component: Logout
    }
    

    模板配置:

    # 这里click方法不能写在a标签上面
    <li @click="logout">
        <a href="javascript:;">手动退出</a>
    </li>
    

    控制器配置:

    <script>
    export default {
      methods: {
        logout() {
          // 手动设置跳转路径
          // this.$router.push('logout');
          // 传参写法
          this.$router.push({name: 'logout', params: {name: '张三'}})
        }
      }
    };
    </script>
    

    命名视图

    命名视图多用在左菜单右内容的位置,比如网站的个人中心

    路由配置:

    {
      path: '/profile',
      component: Profile,
      children: [
        {
          path: 'info/:name',
          components: {
            # 这里配置视图展示
            // default: Infos # 如果只有一个视窗,这里可以设置默认值
            asideContent: Infos
          }
        }
      ]
    }
    

    模板配置:

    <template>
      <div class="row">
        <div class="col-md-9">
          # 命名视图展示位置
          <router-view name="asideContent"></router-view>
        </div>
        <div class="col-md-3">
          <ul class="list-group">
            <li class="list-group-item">
              <router-link to="/profile/info/张三">个人信息</router-link>
            </li>
            <li class="list-group-item">
              <router-link to="/profile/star">我的积分</router-link>
            </li>
            <li class="list-group-item">
              <router-link to="/info">个人信息</router-link>
            </li>
            <li class="list-group-item">
              <router-link to="/info">个人信息</router-link>
            </li>
            <li class="list-group-item">
              <router-link to="/info">个人信息</router-link>
            </li>
          </ul>
        </div>
      </div>
    </template>
    
  • 相关阅读:
    【题解】【模板】矩阵级数
    【题解】P2048 [NOI2010]超级钢琴
    【题解】[APIO2009]会议中心
    【题解】[P4178 Tree]
    【题解】扑克牌游戏
    【题解】quake
    【题解】cycle
    从不浪费——分治总结
    【题解】Painting Fence
    【题解】[CJOI2019Chebnear]
  • 原文地址:https://www.cnblogs.com/huyifei/p/10108010.html
Copyright © 2011-2022 走看看