Vue 编程式的导航

1、应用场景

在同一路由的情况下,不同的参数之间进行切换

注意:别忘记初始化路由页面

2、用法

a、定义方法

b、实现方法

c、初始化路由页面

3、案例

<template>
    <div>
          <div>
      <p>{{details.courses}}</p>
      <p>{{details.img}}</p>
      <p>{{details.level}}</p>
      <p>{{details.slogan}}</p>
      <p>{{details.title}}</p>
      <p>{{details.why}}</p>
      <div>
        <ul v-for="item in details.chapter">
          <li>{{item.name}}</li>
        </ul>
      </div>
      <h4>推荐课程</h4>
      <div>
        <ul v-for="item in details.recommend_courses">
          <li @click="changeDetail(item.id)">{{item.title}}</li>
        </ul>
      </div>

    </div>
    </div>
</template>

<script>
    export default {
        name: "Detail",
        data(){
          return {
            msg: "细节",
            details: {
              chapter: [],
              courses: null,
              id: null,
              img: null,
              recommend_courses: [],
              slogan: "",
              title: "",
              why: ""
            } ,
          }
        },
      mounted() {
        // console.log(this.$route.params.id);
        let id = this.$route.params.id;
        this.initDetail(id);
      },
      methods:{
          // 初始化detail路由页面
          initDetail(id){
            // console.log(id);
            let that = this;
            let url = `http://127.0.0.1:8000/api/v1/course/${id}/`;
            console.log(url);
            this.$axios.get(url)
              .then(function (response) {
                console.log(response.data);
                if (response.data.code === 1000){
                  that.details = response.data.data;
                }
              })
              .catch(function (error) {
                console.log(error);
              });
          },
          changeDetail(id){
            // 导航式路由
            this.$router.push({name: ‘detail‘, params: {id: id}});
            // 初始detail路由页面
            this.initDetail(id);
          }
      },
    }
</script>

<style scoped>

</style>

原文地址:https://www.cnblogs.com/wt7018/p/11537940.html

时间: 2024-08-30 18:08:02

Vue 编程式的导航的相关文章

vue编程式导航,命名路由

//使用 window.location.href 的形式,叫做 编程式导航 绑定事件的形式 <template> <div class="goods-item" v-for="item in goodslist" :key="item.id" @click="goDetail(item.id)"> </div> </template> </script> expor

编程式的导航

在Vue中除了router-link,使用a标签的形式来实现跳转,还有一种方式使用window.location.href的形式,叫做编程式导航,就是写js代码跳转. 一:router.push(): 这个方法,和点击<router-link :to="...">是一样的 1.最简单的:this.$router.push(  '/home/newsinfo'+id  )------>字符串路径 2.传递对象的:this.$router.push(  {  path:'

vue编程式导航

父页面传参: self.$router.push({ path: parameter.navAddress, query: { pageId: parameter.pageId, templateId: parameter.templateId } }); 子页面接收参数: mounted(){ console.log(this.$route.query.pageId); console.log(this.$route.query.templateId); },

vue 编程式导航

// 命名的路由(这里的name为路由中定义的name名称) this.$router.push({ name: 'user', params: { userId: '123' }}) // 带查询参数,变成 /register?plan=private this.$router.push({ path: 'register', query: { plan: 'private' }}) /*注意:如果提供了 path,params 会被忽略,上述例子中的 query 并不属于这种情况.取而代之的

vue 编程式js跳转路由

请看goNews()方法 1 <template> 2 <!-- 所有的内容要被根节点包含起来 --> 3 <div id="home"> 4 我是首页组件 5 6 7 <button @click="goNews()">通过js跳转到新闻页面</button> 8 9 </div> 10 </template> 11 12 13 <script> 14 export d

记录:vue-router 编程式导航,命名路由,命名视图

编程式的导航 除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现. #router.push(location, onComplete?, onAbort?) 注意:在 Vue 实例内部,你可以通过 $router 访问路由实例.因此你可以调用 this.$router.push. 想要导航到不同的 URL,则使用 router.push 方法.这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器

VueRouter爬坑第四篇-命名路由、编程式导航

VueRouter系列的文章示例编写时,项目是使用vue-cli脚手架搭建. 项目搭建的步骤和项目目录专门写了一篇文章:点击这里进行传送 后续VueRouter系列的文章的示例编写均基于该项目环境.  VueRouter系列文章链接 <VueRouter爬坑第一篇-简单实践> <VueRouter爬坑第二篇-动态路由> <VueRouter爬坑第三篇-嵌套路由> <VueRouter爬坑第四篇-命名路由.编程式导航>  阅读目录 一.前言 二.命名路由 三.

五、Vue Router 编程式导航

编程式导航 除了使用<router-link>声明式创建a标签来定义导航链接,还可以借助router的实例方法来跳转导航,这种通过编写JS代码来实现的方式叫编程式导航. router.push(location, onComplete?, onAbort?) 在Vue实例内部,通过$router访问路由实例.可以使用this.$router.push()方法来跳转导航.这个方法会向history栈添加一个新的记录.当点击浏览器后退按钮时,则回到之前的URL. 点击声明式<router-l

Vue声明式和编程式导航

声明式: <router-link :to='{path:"/detail",query:{obj:value}}'></router-link> 编程式: this.$router.push({path:'/detail',query:{obj:value}}); detail.vue取值 this.$route.query.obj