代码:
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 方式传递和接收