亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue3頁面局部刷新組件的刷新問題怎么解決

發布時間:2022-12-28 15:04:24 來源:億速云 閱讀:175 作者:iii 欄目:開發技術

這篇文章主要講解了“Vue3頁面局部刷新組件的刷新問題怎么解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Vue3頁面局部刷新組件的刷新問題怎么解決”吧!

開始操作

vue3的生命周期和vue2的生命周期是完全不一樣的

vue2和vue3的區別

我這里就簡單介紹一下2者的區別

Vue2與Vue3 最大的區別:Vue2使用選項類型API(Options API)對比Vue3合成型API(Composition API)

舊的選項型API在代碼里分割了不同的屬性: data,computed屬性,methods,等等。新的合成型API能讓我們用方法(function)來分割,相比于舊的API使用屬性來分組,這樣代碼會更加簡便和整潔

vue2

export default {
    props: {
        title: String,
    },
    data() {
        return {
            username: "",
            password: "",
        };
    },
    methods: {
        login() {
            //登錄axios請求處理
        },
    },
    components: {
        buttonComponent: btnComponent,
    },
    computed: {
        fullName() {
            return this.firstName + " " + this.lastName;
        },
    },
};

vue3

export default {
    props: {
        title: String,
    },
    setup() {
        const state = reactive({
            //數據
            username: "",
            password: "",
            lowerCaseUsername: computed(() => state.username.toLowerCase()), //計算屬性
        });
        //方法
        const login = () => {
            //登錄axios請求處理
        };
        return {
            login,
            state,
        };
    },
};

Vue2和Vue3的鉤子函數生命周期對照

Vue2--------------vue3
beforeCreate  -> setup()
created       -> setup()
beforeMount   -> onBeforeMount
mounted       -> onMounted
beforeUpdate  -> onBeforeUpdate
updated       -> onUpdated
beforeDestroy -> onBeforeUnmount
destroyed     -> onUnmounted
activated     -> onActivated
deactivated   -> onDeactivated
setup() :開始創建組件之前,在beforeCreate和created之前執行。創建的是data和method
onBeforeMount() : 組件掛載到節點上之前執行的函數。
onMounted() : 組件掛載完成后執行的函數。
onBeforeUpdate(): 組件更新之前執行的函數。
onUpdated(): 組件更新完成之后執行的函數。
onBeforeUnmount(): 組件卸載之前執行的函數。
onUnmounted(): 組件卸載完成后執行的函數
若組件被包含,則多出下面兩個鉤子函數。
onActivated(): 被包含在中的組件,會多出兩個生命周期鉤子函數。被激活時執行 。
onDeactivated(): 比如從 A組件,切換到 B 組件,A 組件消失時執行。

步入正題,解決今天的問題

代碼

首先我們要對app.vue進行修改

代碼:

<template>
  <div id="app">
    <nav-View v-show="login" />
    <router-view v-if="isRouterAlive" /> <!-- 進行v-if判斷 -->
    <foot-View v-show="login" />
  </div>
</template>

<script>
import navView from "@/components/navView.vue";
import footView from "@/components/footer.vue";
import { onMounted, ref, watch ,nextTick,provide,} from "vue";//要引入方法
import { useRouter } from "vue-router";

export default {
  name: "app",
  components: {
    navView,
    footView,
  },
  created() {
    console.log("123", this.$route.path);
  },
  setup() {
    // 局部組件刷新
    const isRouterAlive = ref(true);
    const reload = () => {
      isRouterAlive.value = false;
      nextTick(() => {
        isRouterAlive.value = true;
      });
    };
    provide("reload", reload);
    return {
      isRouterAlive,
    };
  },
  watch: {
    
  },
};
</script>

<style>
* {
  margin: 0px;
}
#app {
  font-family: "Avenir", Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}
</style>

接下來就是子組件(分頁的調用)

代碼:

<template>
  <div>
    <!-- input框輸入值,點擊按鈕,看值會不會清空 -->
    <input type="text"> 
  </div>
  <button @click="refresh">頁面刷新</button>
</template>
<script>
import { inject } from "vue";
export default{
  setup() {
    const refresh = inject("reload");
	//在方法體中的調用方法
    // refresh();
    return {
      refresh,
    };
  },
};
</script>

感謝各位的閱讀,以上就是“Vue3頁面局部刷新組件的刷新問題怎么解決”的內容了,經過本文的學習后,相信大家對Vue3頁面局部刷新組件的刷新問題怎么解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

蚌埠市| 平遥县| 蒙城县| 绥化市| 陆丰市| 渝中区| 许昌市| 乌鲁木齐县| 喀什市| 逊克县| 松桃| 三穗县| 酉阳| 临潭县| 太白县| 多伦县| 星子县| 云南省| 鲁山县| 略阳县| 万盛区| 潼南县| 宿州市| 三河市| 古蔺县| 安平县| 沁水县| 科技| 田阳县| 东阿县| 冷水江市| 秦安县| 安龙县| 绍兴县| 隆子县| 高台县| 徐州市| 民勤县| 西平县| 阿拉尔市| 肥城市|