vue中v-model和route.query怎么结合使用?

项目中一般都有列表和搜索条件的业务场景,搜索条件一般都是表单用v-model和一个对象绑定使用。

现在我不想用这个对象,搜索项改变的时候,直接显示到地址栏上,初始话的时候。

const route = useRoute();

const searchData = computed(()=>{

return {

name: route.query.name ?? "

};

})

但是搜索条件上要怎么写,searchData是不能直接和v-model绑定的。

我想的是用value绑定,自己去onchange中做处理。一般大家都怎么处理这个业务场景?


回答:

我可能还是会用一个对象去做双向绑定,通过router.push 携带query,然后在onMounted初始化formData

<script setup>

import { reactive, onMounted } from 'vue'

import { useRouter, useRoute } from 'vue-router'

const router = useRouter()

const route = useRoute()

const formData = reactive({})

// 搜索的时候

const onSearch = () => {

router.push({

name: routeName,

query: formData

})

}

onMounted(() => {

formData = route.query ?? {}

})

</script>


回答:

可以更详细说说吗?
我个人理解意思是搜索项改变,直接跳转到搜索值对应的路由?
我的想法是使用带有 setter 的 computed 。setter 部分额外添加一条 push 到对应路由的代码,getter 则和你所写的 computed 保持一致即可。具体可以参考下官方文档 v-model 组件一节:https://cn.vuejs.org/guide/co...

以上是 vue中v-model和route.query怎么结合使用? 的全部内容, 来源链接: utcz.com/p/932910.html

回到顶部