#避坑指南:Vue router 路由params传值,接收不到params的参数

2,190 阅读1分钟

代码: router.push({ name:'home', params:{ input:input.value, id:1 } })

home页面接收params参数: import { useRoute } from 'vue-router' const route = useRoute() onMounted(()=>{ console.log(route.params); })

打印出来的route.params是个空对象。

经查阅资料,发现了原因。 由于用params传参,页面刷新之后params参数就会丢失,所以Vue router 4.0以上版本,已经将params传参方法移除。

vue推荐的路由跳转传参方法: 1、使用query传递参数

    name:'home',
    query:{
      input:input.value,
      id:1
    }
  })
 const route = useRoute()
  onMounted(()=>{
    console.log(route.query.id);//打印出:1
  }) 

2.使用vuex、pinia对参数进行存储

<li v-for="(item,index) of store.list" :key="index" @click="store.listDelete(index)">{{item}}</li>
import {useTodolistStore} from '../stores/todolist'
const store = useTodolistStore()

3.使用 History API 方式传递和接收