Vue学习之旅----编程式导航-js控制路由跳转

<template>
  <div>Home
    <button @click="getHomeData()">Home请求数据</button>
    <ul>
      <li v-for="(item,key) in list" :key=key>
        {{item.title}}
      </li>
    </ul>
    <!-- 给子组件传值绑定title属性 -->
    <v-header :title='title' :run="run" :home="this" ref='header'></v-header>
    <button @click="getSonData()">主动获取子组件的属性和方法</button>
    <br>
    <hr>
    <!-- 非父子组件通讯 -->
    <button @click="emitNews()">非父子组件传值----给news组件传值</button>
    <hr>
    <v-life v-if="flag"></v-life>
    <button @click="flag=!flag">挂载和卸载组件</button>
    <hr>
    <h2>get传值</h2>
    <ul>
      <li v-for="(item,index) in list2" :key=index>
        <router-link :to="'/pcontent?aid='+index">{{index}}----{{item}}</router-link>
      </li>
    </ul>
    <hr>
    <button @click="goNews()">通过js跳转路由</button>
  </div>
</template>
<script>
import VueEvent from '../model/VueEvent.js'
import Header from './Header.vue'
import Life from './Life.vue'
import Axios from 'axios'
export default {
  data () {
    return {
      msg: 'home',
      flag: true,
      list: [],
      title: '父组件要传给子组件的值',
      list2: ['111', '222', '333']
    }
  },
  components: {
    'v-header': Header,
    'v-life': Life
  },
  methods: {
    getHomeData () {
      // 请求数据
      var api = 'http://www.phonegap100.com/appapi.php?a=getPortalList&catid=20&page=1'
      Axios.get(api).then((response) => {
        this.list = response.data.result
      }).catch((error) => {
        console.log(error)
      })
    },
    run (data) {
      // 子组件通过执行run方法传递过来的值
      console.log(data)
      alert('我是父组件的run方法')
    },
    getSonData () {
      alert(this.$refs.header.msg)
      this.$refs.header.sonRun()
    },
    emitNews () {
      // 广播组件
      VueEvent.$emit('to-news', this.msg)
    },
    goNews () {
      // 方法一
      // this.$router.push({ path: 'news' })
      // 另一种命名式路由
      this.$router.push({ name: 'News' })
    }
  },
  mounted () {
    VueEvent.$on('to-home', (data) => {
      console.log(data)
    })
  }
}
</script>
<style lang="css" scope>
</style>

一种式编程式,push路径,一种是命名式,push名字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑞朋哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值