{{ tweet.tweet_text }}
{{ tweet.added_at }}
-
Previous
-
{{ page }}
-
Next
在主页中,我有一个容器,其中显示一些元素,下面有一个包含所有页面(1、2、3、4...)的分页,分页正在工作。但是,我想在我的网址中添加一个查询,因此如果输入类似 http://localhost:8080/twity/?page=10 的内容,我想转到该页面。我正在添加这样的查询,但它只显示我所在的当前页面的编号,如果我更改网址中的编号,它只会将我返回到第一个(默认)页面...
this.$router.push({ query: { page: this.currentPage } })
如果需要,我可以分享我的整个 Home 组件代码。谢谢。
主页组件
{{ tweet.added_at }}
{{ tweet.tweet_text }}
Previous
{{ page }}
Next
Nodejs函数(用于从数据库获取数据并控制分页)
getAllTweets: async (req) => {
// get number of all rows in table
let tweetsNum = await SQL('SELECT COUNT(*) as total FROM twitter_tweets')
tweetsNum = tweetsNum[0].total
// number of tweets
const pageSize = 25
let skip = 0
const numberOfPages = Math.ceil(tweetsNum / pageSize)
// page number from client
const newCurrentPage = req.query.newCurrentPage
let currentPage = req.query.page
// check if there is newCurrentPage
if(newCurrentPage != undefined) {
skip = (newCurrentPage - 1) * pageSize
currentPage = newCurrentPage
} else {
// check if page is valid)
if(currentPage < 1) {
currentPage = 1
} else if(currentPage > numberOfPages) {
currentPage = numberOfPages
}
// offset
skip = (currentPage - 1) * pageSize
}
// paginate tweets from db
const tweetsFromDb = await SQL('SELECT * FROM twitter_tweets ORDER BY added_at DESC LIMIT ?,?', [skip, pageSize])
let tweets = Object.values(JSON.parse(JSON.stringify(tweetsFromDb)))
const data = {
tweets: tweets,
page: parseInt(currentPage),
numberOfPages: parseInt(numberOfPages),
}
return data
} Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
beforeRouteUpdate(to,from,next) { yourFunctionXXXXX(to.query); next(); }, beforeRouteEnter(to, from, next) { next((vm) => { vm.yourFunctionXXXXX(to.query); }); },你应该先使用路由预卫来拦截你的路由参数,然后根据参数手动决定你应该显示什么内容