Vue函数式路由


如果你点击一个有样式的标签,或者是一个封装好的按钮组件,这些都不提供:to的接口的,此时就得用函数式路由了,比如这种

<template>
  <div>
      <mt-navbar v-model="selected" class="container"  @click.native="goRouter">
        <mt-tab-item id="head-nav1">新歌</mt-tab-item>
        <mt-tab-item id="head-nav2">排行</mt-tab-item>
        <mt-tab-item id="head-nav3">歌单</mt-tab-item>
        <mt-tab-item id="head-nav4">歌手</mt-tab-item>
        <mt-tab-item id="head-nav5">彩铃</mt-tab-item>
      </mt-navbar>
  </div>
</template>
<script type="es6">
  import { Navbar, TabItem } from 'mint-ui';
  export default {
    name:'head-nav',
    data(){
      return {
        selected:'head-nav1'
      }
    },
    components:{Navbar, TabItem},
    methods:{
      goRouter(){
        var navItem=this.selected.charAt(this.selected.length-1);
        switch(navItem){
          case '1':this.$router.push({path:'index'});break;
          case '2':this.$router.push({path:'rank'});break;
          case '3':this.$router.push({path:'plist'});break;
          case '4':this.$router.push({path:'singer'});break;
          case '5':this.$router.push({path:'ringtone'});break;
        }
      }
    }
  }
</script>



回到上一级可以这么写

<template>
  <div class="rank-head container" :style="style">
    <a class="rank-head-back" @click="routerBack"></a>
    {{title}}
  </div>
</template>
<script type="es6">
  export default {
    props:['title','style'],
    name:'rank-head',
    methods:{
      routerBack(){
        this.$router.go(-1);
      }
    }
  }
</script>


blob.png


修改时间 2017-01-04

真诚赞赏,手留余香
赞赏
随机推荐
Javascript和jQuery获取checkbox的值
thinkphp5 r4分页类传入参数
JS时间戳转换
V8引擎、 libuv 和 N-API
MySQL备份与恢复,mysqldump命令导入导出数据库
使用Cordova命令行界面(CLI)
webpack报错:Cannot assign to read only property 'exports' of object
Node.js Buffer(缓冲区)
阿里云对象存储 OSS 限流超过阈值自动关闭【防破产,保平安】
跟Github学习设计不符合 CRUD 情况的RESTful API