Saya menghadapi masalah apabila menggunakan VueRouter2.0 untuk paging
Pada masa ini, paging semasa dan bilangan paparan paging direkodkan dalam halaman dan pembolehubah saiz halaman halaman pertama selepas memuat semula halaman, dan halaman semasa tidak boleh direkodkan
代码:
export default {
components: { LayoutContent },
data(){
return {
page: 1,
pageSize: 20,
total:0,
list:[]
}
},
created(){
this.loadData()
},
methods:{
...mapActions([
'list'
]),
loadData(){
let pageSize = this.pageSize
let page = this.page
this.list({page,pageSize}).then((data) => {
this.total = data.total
this.list = data.list
})
},
pageSizeChange(size){
this.pageSize=size
this.loadData()
},
pageChange(page){
this.page=page
this.loadData()
}
}
}
Jadi saya ingin menukarnya untuk memasukkan parameter selepas url untuk merekodkan halaman dan Saiz halaman Namun, selepas ujian, alamat url tidak akan berubah kerana parameter pertanyaan berubah...
代码:
export default {
components: { LayoutContent },
data(){
return {
page: 1,
pageSize: 20,
total:0,
list:[]
}
},
created(){
this.loadData()
},
beforeRouteUpdate(to,from,next){
this.page = to.query.page
this.pageSize = to.query.pageSize
this.loadData()
},
methods:{
...mapActions([
'list'
]),
loadData(){
let pageSize = this.pageSize
let page = this.page
this.list({page,pageSize}).then((data) => {
this.total = data.total
this.list = data.list
})
},
pageSizeChange(size){
this.route(this.page, size)
},
pageChange(page){
this.route(page,this.pageSize)
},
route(page,pageSize){
this.$router.push({path:`/list`, query:{page,pageSize}})
}
}
}
Alamat halaman semasa ialah http://xxx/#list Selepas memanggil ini.$router.push({path:/list
, pertanyaan:{page,pageSize}}), alamatnya masih http://xxx/#. senarai, bukan http:://xxx/#list?page=x&page... Pada akhirnya, tiada cara selain mengubah suai lokasi secara langsung. Saya tertanya-tanya sama ada VueRoute sendiri boleh melakukan ini? ? ?
Adakah lebih baik memantau terus halaman atau saiz halaman dalam jam tangan