vue3+js+elementplus+组合式api 且用axios前后端交互 搜索完后点击分页的下一页怎么依然保持搜索状态
要在搜索完毕后点击分页的下一页仍保持搜索状态,可以使用组合式 API 和 Vue Router 实现。
首先,在组合式 API 中,使用 ref 定义一个搜索关键字的变量,并在搜索框中绑定该变量,当搜索框的值改变时,搜索关键字也会更新。
import { ref } from 'vue';
export default {
setup() {
const searchKeyword = ref('');
const handleSearch = () => {
// 处理搜索逻辑,发送请求等
// 使用 searchKeyword.value 获取搜索关键字
}
return {
searchKeyword,
handleSearch,
}
}
}
然后,在点击分页的下一页时,将搜索关键字作为参数传递给下一页的路由,并在下一页的组件中获取该参数。
// 在当前页的组件中
import { useRouter } from 'vue-router';
export default {
setup() {
const router = useRouter();
const handleNextPage = () => {
router.push({
name: 'NextPage', // 下一页的路由名称
params: {
searchKeyword: searchKeyword.value, // 将搜索关键字作为参数传递给下一页
},
});
}
return {
handleNextPage,
}
}
}
在下一页的组件中,使用 props 接收搜索关键字参数,并在组件初始化时将搜索关键字设置为初始值。
import { ref, onMounted } from 'vue';
export default {
props: {
searchKeyword: {
type: String,
required: true,
},
},
setup(props) {
const searchKeyword = ref('');
onMounted(() => {
searchKeyword.value = props.searchKeyword; // 设置搜索关键字为传递的参数值
// 处理分页逻辑,发送请求等,使用 searchKeyword.value 获取搜索关键字
});
return {
searchKeyword,
}
}
}
这样,无论在搜索页还是在下一页,都可以保持搜索状态
原文地址: https://www.cveoy.top/t/topic/iT1l 著作权归作者所有。请勿转载和采集!