vue 列表页跳转到详情流程

1. 获取数据

这里用的是假数据。因为要判断点击的是哪一个列表单项,所以点击事件需要传参,这里没有 id 就用 items 代替

2. 点击跳转

跳转的几种方法:路径跳转,命名路由跳转。

  methods: {
    handetail (id) {
      //   location.href = '#/detail'
      // 通过路劲跳转
      // this.$router.push(`/detail/${id}`)
      // 通过命名路由跳转
      this.$router.push({
        name: 'mydetil',
        params: {
          myid: id
        }
      })
    }
  }

2.1 命名路由:index.js 中

 {
    name: 'mydetil', // 命名路由
    path: '/detail/:myid', // 动态二级路由
    component: Detail
  },

接下来具备可以去请求详情页数据了

  created () {
    console.log('created', this.$route)
  },
  mounted () {
    console.log('mounted', this.$route.params.myid)
  }

 

### Vue.js 中实现页面跳转的方法 在 Vue.js 应用程序中,通常使用 `vue-router` 来处理页面之间的导航。下面是一个简单的例子展示如何配置路由以及实现基本的页面跳转。 #### 安装 vue-router 如果还没有安装 `vue-router` ,可以通过 npm 进行安装: ```bash npm install vue-router@next --save ``` #### 配置路由 创建一个名为 `router/index.js` 的文件来定义应用程序的不同视图及其对应的组件路径: ```javascript import { createRouter, createWebHistory } from 'vue-router' import HomeView from '../views/HomeView.vue' import AboutView from '../views/AboutView.vue' const routes = [ { path: '/', name: 'home', component: HomeView, }, { path: '/about', name: 'about', component: AboutView, } ] const router = createRouter({ history: createWebHistory(), routes }) export default router; ``` #### 使用 `<router-link>` 和 `$router.push()` 有两种主要方式可以在 Vue.js 中实现页面间的跳转:一种是利用内置组件 `<router-link>`;另一种则是调用编程式导航 API 即 `$router.push()` 方法。 ##### HTML 模板内使用 `<router-link>` 这是最简单的方式之一,在模板里可以直接写入如下代码片段来进行链接跳转: ```html <template> <div id="app"> <!-- 导航栏 --> <nav> <ul> <li><router-link to="/">首页</router-link></li> <li><router-link :to="{name:'about'}">关于我们</router-link></li> </ul> </nav> <!-- 显示当前匹配到的内容 --> <router-view></router-view> </div> </template> ``` 上述代码展示了两个菜单项:“首页”指向根目录 `/`, “关于我们”则会导向名称为 "about" 的路由[^1]。 ##### JavaScript 编程式导航 除了静态地设置链接外,有时也需要根据某些条件动态决定要访问哪个页面。这时就可以借助于 `$router.push()` 函数完成此目的。例如在一个按钮点击事件处理器内部执行这样的逻辑: ```javascript methods:{ goToAboutPage(){ this.$router.push({ name: 'about' }); } } ``` 当用户触发该方法时就会发生页面切换至关于我们的页面[^2]。 #### 结合实际场景的应用案例 考虑这样一个需求——当表单验证成功之后才允许用户前往下一个页面。此时可以先阻止默认行为再判断是否满足特定条件后再做进一步的操作: ```javascript submitForm(event){ event.preventDefault(); // 阻止表单提交刷新整个页面 const isValid = validateFormData(this.formData); // 假设有一个函数用来校验数据有效性 if (isValid) { this.$router.push('/success'); // 如果有效,则转向成功的页面 } else { alert('请填写正确的信息'); } } ``` 这种方法不仅限于表单提交后的重定向,也可以应用于其他任何需要基于业务逻辑控制流程的情况之下[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值