methods 里的 toPage 是做分页用的, router.push 还是到当前路由,只是修改 query 参数,但是路由没有跳转, 手动修改浏览器 url 参数,可以触发 beforeRouteUpdate,不知道是不是我哪里有写错,router 版本 3.0.1
export default {
name: "Event",
data() {
return {
query: {
per_page: 40
},
pagination: {},
tableHight: null
}
},
methods: {
toPage(page) {
Object.assign(this.query, {page: page})
this.$router.push({name: 'event', query: this.query})
},
loadData() {
const _self = this
_self.$http.get('/event/main', {params: _self.query}).then(resp => {
_self.pagination = resp.data;
})
},
watchQuery(query) {
if (query)
this.query = Object.assign(query, {per_page: this.query.per_page || 40})
this.loadData()
}
},
beforeRouteUpdate(to, from, next) {
// react to route changes...
// don't forget to call next()
this.watchQuery(to.query)
next()
},
mounted() {
const _self = this
_self.watchQuery(_self.$route.query)
_self.tableHight = _self.$el.offsetHeight - 48 - 38
window.onresize = () => {
_self.tableHight = _self.$el.offsetHeight - 48 - 38
};
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.