最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue之this.$router.push頁面刷新問題

 更新時(shí)間:2023年12月04日 14:46:09   作者:兇呆呆  
這篇文章主要介紹了vue之this.$router.push頁面刷新問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

跳轉(zhuǎn)當(dāng)前路由(路由參數(shù)有變化)(路由參數(shù)無變化此方法無效)

使用this.$router.push進(jìn)行跳轉(zhuǎn)時(shí),如果是跳轉(zhuǎn)當(dāng)前路由(路由參數(shù)有變化),可在 App.vue 里的 router-view 標(biāo)簽設(shè)置 key 值。

或使用監(jiān)聽器 watch

<template>
    <div id="app">
        <DataSearch/>
        <keep-alive :exclude="exclude">
            <!--  通過key設(shè)置頁面刷新 規(guī)矩
                $route.fullPath 得到路由(包含帶?的參數(shù))
            :key="$route.fullPath" 如果路由改變就刷新
                     -->
<!--            <router-view :key="$route.fullPath"></router-view>-->
            <router-view :key="$route.fullPath"></router-view>
        </keep-alive>
    </div>
</template>

跳轉(zhuǎn)當(dāng)前路由(路由參數(shù)也無變化)

可以創(chuàng)建一個(gè)中轉(zhuǎn) vue 界面,詳見代碼:

首先 我們來看主要功能代碼:

假設(shè)我現(xiàn)在想實(shí)現(xiàn):在 datasearch.vue 中設(shè)置一個(gè)搜索按鈕,點(diǎn)擊搜索就跳轉(zhuǎn)至 datadisplay.vue 頁面,并且 datadisplay.vue 頁面會(huì)重新刷新渲染(不管路由是否變化)

datasearch.vue

<template>
    <div style="text-align: center;">
        <el-autocomplete
            class="input-with-select"
            style="width: 80%;"
            popper-class="my-autocomplete"
            v-model="state"
            :fetch-suggestions="querySearch"
            placeholder="請輸入內(nèi)容"
            value-key="value"
            @change="sousuo"
        >
<!--    使用 value-key 屬性,可以指定任意列作為顯示用的        -->

<!--     自定義模板       -->
<!--   比如多個(gè)顯示      -->
<!--            <template slot-scope="{ item }">-->
<!--                <div class="name">{{ item.value }}</div>-->
<!--                <span class="addr">{{ item.address }}</span>-->
<!--            </template>-->
            <el-button slot="append" icon="el-icon-search" @click="sousuo" >搜索</el-button>
        </el-autocomplete>
    </div>
</template>
<script>
    export default {
        name: 'DataSearch',
        data() {
            return {
                state: '',
                content: [],
                fullPath: '',
            };
        },

        methods: {
            querySearch(queryString, cb) {
                var restaurants = this.loadAll();
                var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
                // 調(diào)用 callback 返回建議列表的數(shù)據(jù)
                cb(results);
            },
            createFilter(queryString) {
                return (restaurant) => {
                    // restaurant.value.toLowerCase().indexOf(queryString.toLowerCase())如果元素存在列表中返回下標(biāo),否則返回-1
                    console.log(restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()));
                    return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) > -1);  // 如果大于-1則代表有這個(gè)關(guān)鍵字
                };
            },

            loadAll() {
                // console.log(this.content);
                return this.content
            },
            sousuo(){
                this.$router.push({
                    path: '/zhongzhuan',
                    query: {state: this.state},

                });
            },
        }
    }
</script>

App.vue

<template>
    <div id="app">
        <DataSearch/>
<!--       這里必須要通過 :exclude 設(shè)置 緩存黑名單 否則跳轉(zhuǎn)會(huì)出問題       -->
<!--      黑名單中要包含 中轉(zhuǎn)的 vue 名  和中轉(zhuǎn)后的 vue 名     -->
        <keep-alive :exclude="exclude">
            <!--  通過key設(shè)置頁面刷新 規(guī)矩
                $route.fullPath 得到路由(包含帶?的參數(shù))
            :key="$route.fullPath" 如果路由改變就刷新
                     -->
<!--            <router-view :key="$route.fullPath"></router-view>-->
<!--            <router-view :key="$route.fullPath"></router-view>-->
<!--              這里設(shè)置或不設(shè)置 key 都可以                               -->
            <router-view></router-view>
        </keep-alive>
    </div>
</template>

<script>
    import DataSearch from './components/datasearch.vue'

    export default {
        name: 'App',
        components: {
            DataSearch
        },
        data() {
            return {
                exclude: ['datadisplay', 'zhongzhuan'],
            }
        },
    }
</script>

zhongzhuan.vue

<template>
    <div></div>
</template>

<script>
    export default {
        // 用來中轉(zhuǎn),避免路由不變時(shí) 頁面不刷新
        name: "zhongzhuan",

        created() {
            this.pushUrl()
        },
        methods: {
            getData(){
                return this.$route.query.state
            },
            pushUrl(){
                this.$router.push({
                    path: '/datadisplay',
                    query: {state: this.getData()},  // 傳遞參數(shù),放在url?后面的
                })
            }
        },
    }
</script>

datadisplay.vue

<template>
    <div>
        <p>content:{{ content }}</p>
    </div>
</template>

<script>
    export default {
        name: "datadisplay",
        data(){
            return {
                content: '123',
            }
        },

        created() {
            this.getData()
        },
        methods: {
            getData(){
                //this.$router 實(shí)際上就是全局路由對象任何頁面都可以調(diào)用 push(), go()等方法;
                // this.$route  表示當(dāng)前正在用于跳轉(zhuǎn)的路由器對象,可以調(diào)用其name、path、query、params等屬性。
                // 應(yīng)此需要接受路由參數(shù)時(shí),要用this.$route,發(fā)送跳轉(zhuǎn)路由時(shí)要用this.$router
                console.log(this.$route);
                this.content = this.$route.query;
            }
        }
    }

</script>

<style scoped>

</style>

對應(yīng)代碼實(shí)現(xiàn)圖片

  • 第一次點(diǎn)擊

  • 第二次點(diǎn)擊

  • 第三次點(diǎn)擊

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于element-ui中@selection-change執(zhí)行兩次的問題

    關(guān)于element-ui中@selection-change執(zhí)行兩次的問題

    這篇文章主要介紹了關(guān)于element-ui中@selection-change執(zhí)行兩次的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 前端虛擬列表實(shí)現(xiàn)的思路及完整代碼

    前端虛擬列表實(shí)現(xiàn)的思路及完整代碼

    這篇文章主要介紹了前端虛擬列表實(shí)現(xiàn)的思路及完整代碼,虛擬列表是一種優(yōu)化長列表性能的技術(shù),通過只渲染可視區(qū)域的列表項(xiàng)來提升頁面性能和用戶體驗(yàn),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-01-01
  • 利用Vue3+Element?Plus封裝公共表格組件(帶源碼)

    利用Vue3+Element?Plus封裝公共表格組件(帶源碼)

    最近公司項(xiàng)目中頻繁會(huì)使用到table表格,而且前端技術(shù)這一塊也用到了vue3來開發(fā),所以基于element plus table做了一個(gè)二次封裝的組件,這篇文章主要給大家介紹了關(guān)于利用Vue3+Element?Plus封裝公共表格組件的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • 優(yōu)化Vue項(xiàng)目編譯文件大小的方法步驟

    優(yōu)化Vue項(xiàng)目編譯文件大小的方法步驟

    這篇文章主要介紹了優(yōu)化Vue項(xiàng)目編譯文件大小的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • VuePress 快速踩坑小結(jié)

    VuePress 快速踩坑小結(jié)

    VuePress 可以讓您非常方便的在 Markdown 文檔中編寫 Vue 代碼,這篇文章主要介紹了VuePress 快速踩坑小結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-02-02
  • vue?hash模式改成history,同時(shí)實(shí)現(xiàn)spa預(yù)渲染問題

    vue?hash模式改成history,同時(shí)實(shí)現(xiàn)spa預(yù)渲染問題

    這篇文章主要介紹了vue?hash模式改成history,同時(shí)實(shí)現(xiàn)spa預(yù)渲染問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-03-03
  • vue3 ts打包失敗ts類型校驗(yàn)未通過導(dǎo)致打包失敗的解決方案

    vue3 ts打包失敗ts類型校驗(yàn)未通過導(dǎo)致打包失敗的解決方案

    這篇文章主要介紹了vue3 ts打包失敗ts類型校驗(yàn)未通過導(dǎo)致打包失敗的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • 使用vue初用antd 用v-model來雙向綁定Form表單問題

    使用vue初用antd 用v-model來雙向綁定Form表單問題

    這篇文章主要介紹了使用vue初用antd 用v-model來雙向綁定Form表單問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 一文搞懂Vue3中toRef和toRefs的區(qū)別

    一文搞懂Vue3中toRef和toRefs的區(qū)別

    toRef 和 toRefs都是Vue3 中的響應(yīng)式轉(zhuǎn)換工具函數(shù),換句話說,toRef 和 toRefs 就是用來創(chuàng)建響應(yīng)式的引用的,主要用來取出響應(yīng)式對象里的屬性,或者解構(gòu)響應(yīng)式對象,本文小編就來帶大家搞清楚Vue3中toRef和toRefs的區(qū)別,需要的朋友可以參考下
    2023-09-09
  • vue中使用rem布局的兩種方法小結(jié)

    vue中使用rem布局的兩種方法小結(jié)

    這篇文章主要介紹了vue中使用rem布局的兩種方法小結(jié),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07

最新評論

京山县| 鹤山市| 时尚| 宜川县| 荔浦县| 那曲县| 南召县| 泰州市| 陈巴尔虎旗| 古田县| 晋宁县| 蒙山县| 京山县| 平顺县| 紫阳县| 宣城市| 宿州市| 三明市| 肃北| 沙雅县| 孟州市| 辽宁省| 肇庆市| 晋州市| 岑巩县| 时尚| 北宁市| 自治县| 渭南市| 富源县| 布拖县| 綦江县| 宁陕县| 邢台市| 桂阳县| 民县| 普定县| 凉城县| 沛县| 井冈山市| 松溪县|