<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## Vue 一些屬性的理解 * [ ] ~ 計算屬性(`computed`)、方法(`methods`)和偵聽屬性(`watch`)的區別與使用場景 * [ ] ~ Vue 生命周期的理解 * [ ] ~ Vue 雙向綁定,為什么不能通過修改下標來通知視圖發生變化 * [ ] ~ 簡述 `Vue` 中的 `MVVM` 模型 * [ ] ~ Vue 路由中 `hash` 模式和 `history` 模式區別 * [ ] ~ Vue 路由中 `$route` 和 `$router` 的區別 * [ ] ~ 組件 ## 計算屬性(computed)、方法(methods)和偵聽屬性(watch)的區別與使用場景 >[info]methods VS 計算屬性 * 我們可以將同一函數定義為一個 method 而不是一個計算屬性。對于最終的結果,兩種方式確實是相同的。 * 然而,不同的是**計算屬性是基于它們的依賴進行緩存的**。計算屬性只有在它的相關依賴發生改變時才會重新求值。這就意味著只要 `message` 還沒有發生改變,多次訪問 `reversedMessage` 計算屬性會立即返回之前的計算結果,而不必再次執行函數。 * 相比而言,只要發生重新渲染,`method` 調用總會執行該函數。總之,重新計算開銷很大的話請選計算屬性,不希望有緩存的請選`methods`。 >[info]watch VS 計算屬性 * 當你在模板內使用了復雜邏輯的表達式時,你應當使用**計算屬性**。 * 偵聽屬性是一個對象,鍵是需要觀察的表達式,值是對應回調函數。值也可以是方法名,或者包含選項的對象。 * 當你有一些數據需要隨著其它數據變動而變動時,或者當需要**在數據變化時執行異步或開銷較大的操作時**,你可以使用 `watch`。 **** **** ## Vue 生命周期的理解 * beforeCreate 在實例初始化之后,數據觀測 (`dataobserver`) 和 `event/watcher` 事件配置之前被調用。 * created 在實例創建完成后被立即調用。在這一步,實例已完成以下的配置:數據觀測 (`data observer`),屬性和方法的運算,`watch/event` 事件回調。然而,掛載階段還沒開始,`$el` 屬性目前不可見。 * beforeMount 在掛載開始之前被調用:相關的 `render` 函數首次被調用。 該鉤子在服務器端渲染期間不被調用。以下周期在服務端渲染期間都不被調用。 * mounted `el` 被新創建的 `vm.$el` 替換,并掛載到實例上去之后調用該鉤子。如果 `root` 實例掛載了一個文檔內元素,當 `mounted` 被調用時 `vm.$el` 也在文檔內。注意 `mounted` 不會承諾所有的子組件也都一起被掛載。如果你希望等到整個視圖都渲染完畢,可以用 `vm.$nextTick `替換掉 `mounted`。 * beforeUpdate 數據更新時調用,發生在虛擬 DOM 打補丁之前。這里適合在更新之前訪問現有的 DOM,比如手動移除已添加的事件監聽器。 * updated 由于數據更改導致的虛擬 DOM 重新渲染和打補丁,在這之后會調用該鉤子。 * activated `keep-alive` 組件激活時調用。 * deactivated `keep-alive` 組件停用時調用。 * beforeDestroy 實例銷毀之前調用。在這一步,實例仍然完全可用。 * destroyed Vue 實例銷毀后調用。調用后,Vue 實例指示的所有東西都會解綁定,所有的事件監聽器會被移除,所有的子實例也會被銷毀。 **** **** ## Vue 雙向綁定,為什么不能通過修改下標來通知視圖發生變化 Vue為什么不能檢測數組變動 >[info]變異方法: Vue 包含一組觀察數組的變異方法,所以它們也將會觸發視圖更新。這些方法如下: `push()`, `pop()`, `shift()` ,`unshift()`, `splice()`, `sort()`, `reverse()` >[info]替換數組: `filter()`, `concat()` 和 `slice()` 。這些不會改變原始數組,但總是返回一個新數組。當使用非變異方法時,可以用新數組替換舊數組: >[danger]注意事項: 由于 `JavaScript` 的限制,Vue 不能檢測以下變動的數組: * 當你利用索引直接設置一個項時,例如:`vm.items[indexOfItem] = newValue` * 當你修改數組的長度時,例如:`vm.items.length = newLength` >[info]變通方法: * `Vue.set(vm.items, indexOfItem, newValue)` * `vm.items.splice(indexOfItem, 1, newValue)` **** **** ## 簡述 Vue 中的 MVVM 模型 * Vue是以數據為驅動的,Vue自身將DOM和數據進行綁定,一旦創建綁定,DOM和數據將保持同步,每當數據發生變化,DOM會跟著變化。 * `ViewModel`是Vue的核心,它是Vue的一個實例。Vue實例是作用在某個HTML元素上的,這個HTML元素可以是body,也可以是某個id所指代的元素。 * `DOM Listeners`和Data `Bindings`是實現雙向綁定的關鍵。`DOM Listeners`監聽頁面所有`View`層`DOM`元素的變化,當發生變化,`Model`層的數據隨之變化;`Data Bindings`監聽`Model`層的數據,當數據發生變化,`View`層的`DOM`元素隨之變化。 **** ## Vue 路由中 hash 模式和 history 模式區別 >[inffo]hash模式 * hash 出現在 URL 中,但不會被包含在 http 請求中,對后端完全沒有影響,因此改變 hash 不會重新加載頁面。 * 特點:hash雖然在URL中,但不被包括在HTTP請求中;用來指導瀏覽器動作,hash不會重加載頁面。 >[info]history模式 `history` 利用了 `html5 history interface `中新增的 `pushState() `和 `replaceState()` 方法。這兩個方法應用于瀏覽器記錄棧,在當前已有的 `back`、`forward`、`go` 基礎之上,它們提供了對歷史記錄修改的功能。只是當它們執行修改時,雖然改變了當前的 `URL` ,但瀏覽器不會立即向后端發送請求。 >[info]原理: `hash` 模式的原理是 `onhashchange` 事件,可以在 `window` 對象上監聽這個事件。 `history` :`hashchange` 只能改變 # 后面的代碼片段,`history api`(pushState、`replaceState`、`go`、`back`、`forward`) 則給了前端完全的自由,通過在`window`對象上監聽`popState()`事件。 **** **** ## Vue 路由中 $route 和 $router 的區別 * $route是“路由信息對象”,包括`path`,`params`,`hash`,`query`,`fullPath`,`matched`,`name`等路由信息參數。 * $router是“路由實例”對象包括了路由的跳轉方法,鉤子函數等。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看