在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ vue router中 所傳的query參數(shù)的改變不會(huì)讓頁(yè)面刷新嗎?只有強(qiáng)制刷新

vue router中 所傳的query參數(shù)的改變不會(huì)讓頁(yè)面刷新嗎?只有強(qiáng)制刷新頁(yè)面才會(huì)更新視圖,是為什么?

順帶問(wèn)個(gè)比較low的問(wèn)題,項(xiàng)目的頭部導(dǎo)航中,有用戶(hù)信息,如何才能在切換導(dǎo)航時(shí)依然緩存它的數(shù)據(jù),我這邊每次都會(huì)重新去拿一次數(shù)據(jù)

回答
編輯回答
念初
  1. 不會(huì)的(因?yàn)関ue的query也是放在hash后面的,hash改變不會(huì)引起瀏覽器刷新)。
  2. 可以集成vuex,全局有個(gè)state存用戶(hù)信息,登錄的時(shí)候拿一下寫(xiě)入state,其他地方可以直接拿來(lái)用
2017年7月13日 06:48
編輯回答
笨小蛋

query改變并不會(huì)讓頁(yè)面刷新,但你可以通過(guò)監(jiān)聽(tīng)來(lái)判斷路由是否改變,也可以使用組件內(nèi)守衛(wèi)beforeRouteUpdate ,具體使用方法看文檔、百度或Google;
緩存數(shù)據(jù)可以用vuex,瀏覽器緩存也可以啊

2017年11月1日 09:18
編輯回答
巷尾

思想即:點(diǎn)擊導(dǎo)航時(shí)記錄點(diǎn)選的 tab 并追加至 url 上,監(jiān)聽(tīng) $route 變化重新 loadData,回退時(shí)根據(jù) url 的 tab 參數(shù) loadData 并設(shè)置導(dǎo)航點(diǎn)選狀態(tài)。

export default {

    data () {
        return {
            tab: 0
        }
    },
    
    created () {
        this.onRoute()
    },
    
    watch: {
        '$route': 'onRoute'
    },
    
    onRoute () {
        this.loadData()
    },
    
    pushRouter () {
        // 考慮不丟棄通用參數(shù)
        var query = this.$route.query
        var queryString = ''
        for (let key in query) {
            if (key !== 'tab') queryString += `&${key}=${query[key]}`
        }
        this.$router.replace(`/路由 url?${queryString}&tab=${this.tab}`)
    },
    
    /**
    * 加載數(shù)據(jù)請(qǐng)求
    */
    loadData () {
        this.$request({
            url: '請(qǐng)求 url',
            params: {
                tab: this.tab
            }
        }).then((data) => {
            console.log(data)
        })
    },
    
    /**
    * 點(diǎn)擊導(dǎo)航
    */
    clickNavigation (tab) {
        this.tab = tab
        this.pushRouter()
    }
}
2017年10月8日 03:43