1. 程式人生 > >Vue生命週期中created()和mounted()的區別

Vue生命週期中created()和mounted()的區別

一、什麼是生命週期?

用通俗的語言來說,就是Vue中例項或者元件從建立到消滅中間經過的一系列過程。雖然不太嚴謹,但是也基本上可以理解。
通過一系列實踐,現在把所有遇到的問題整理一遍,今天記錄一下created和mounted的區別:

二、created和mounted區別?
官方圖解如下:
這裡寫圖片描述
我們從圖中看兩個節點:
created:在模板渲染成html前呼叫,即通常初始化某些屬性值,然後再渲染成檢視。
mounted:在模板渲染成html後呼叫,通常是初始化頁面完成後,再對html的dom節點進行一些需要的操作。

其實兩者比較好理解,通常created使用的次數多,而mounted通常是在一些外掛的使用或者元件的使用中進行操作,比如外掛chart.js的使用: var ctx = document.getElementById(ID);通常會有這一步,而如果你寫入元件中,你會發現在created中無法對chart進行一些初始化配置,一定要等這個html渲染完後才可以進行,那麼mounted就是不二之選。下面看一個例子(用元件)。

三、例子

<span style="font-size:14px;">Vue.component("demo1",{
        data:function(){
            return {
                name:"",
                age:"",
                city:""
            }
        },
        template:"<ul><li id='name'>{{name}}</li><li>{{age}}</li><li>{{city}}</li></ul>"
, created:function(){ this.name="唐浩益" this.age = "12" this.city ="杭州" var x = document.getElementById("name")//第一個命令臺錯誤 console.log(x.innerHTML); }, mounted:function(){ var x = document.getElementById("name"
)/</span>/第二個命令臺輸出的結果<span style="font-size:14px;"> console.log(x.innerHTML); } }); var vm = new Vue({ el:"#example1" })</span>

可以看到輸出如下:
這裡寫圖片描述
可以看到都在created賦予初始值的情況下成功渲染出來了。
但是同時看console臺如下:
這裡寫圖片描述
可以看到第一個報了錯,實際是因為找不到id,getElementById(ID) 並沒有找到元素,原因如下:

在created的時候,檢視中的html並沒有渲染出來,所以此時如果直接去操作html的dom節點,一定找不到相關的元素
而在mounted中,由於此時html已經渲染出來了,所以可以直接操作dom節點,故輸出了結果“唐浩益”。

以上就是我自己總結的mounted和mounted的區別,寫的比較簡陋,記錄下來,加深印象。

相關推薦

Vue生命期中created()mounted()的區別

一、什麼是生命週期? 用通俗的語言來說,就是Vue中例項或者元件從建立到消滅中間經過的一系列過程。雖然不太嚴謹,但是也基本上可以理解。 通過一系列實踐,現在把所有遇到的問題整理一遍,今天記錄一下created和mounted的區別: 二、created和m

Vue例項生命期中createdmounted區別

最近剛好在學習Vue.js,在實敲輪播demo時發現了一個當時感覺很奇怪的問題:初始化使用mounted鉤子時,只調用了一次,之後就沒有呼叫過了。害我一直以為是自己之後的程式碼書寫有問題,結果自己再敲一遍還是隻能初始化呼叫一次。。。發現這個問題後找找大神們的部落格看了看,發現

vue生命期中createdmounted區別

creat 頁面 比較 下使用 wid 相對 eat info 可能 created在渲染頁面之前使用,通常是用來渲染頁面 mounted通常是在渲染頁面之後,用來操作dom節點 通常情況下使用created比較多,使用mounted相對少一些,一些情況使用mounted可

Vue生命期中mountedcreated區別

一、什麼是生命週期? 用通俗的語言來說,就是Vue中例項或者元件從建立到消滅中間經過的一系列過程。雖然不太嚴謹,但是也基本上可以理解。 通過一系列實踐,現在把所有遇到的問題整理一遍,今天記錄一下created和mounted的區別:二、created和mounted區別? 官

Vue生命期中createdmounted區別

之前大部分時候都是用angular開發專案,vue寫的很少,最近有必要把vue和webpack重新整理一下了。下面我們先看一下Vue生命週期中的created和mounted的區別。 我們先看一張圖(這張圖是借鑑別人的,嘻嘻,在此感謝) created:創造的;建立 mounted: 安裝

vue生命期中,鉤子函式執行順序

1. 流程圖 2.一般的執行順序(從上往下): beforeCreate           在例項初始化之後,資料觀測(data observer) 和 event/watcher 事件配置之前被呼叫。 created          例項已經建立完成之後被呼叫。在

Android Activity 生命期中onStart()onResume()的區別

執行 com 系統 而在 周期 分享圖片 get 重新啟動 連接 首先了解Activity的四種狀態 Running狀態:一個新的Activity啟動入棧後,它在屏幕最前端,處於棧的最頂端,此時它處於可見並可和用戶交互的激活狀態。Paused狀態:當Activity被另一個

Spring框架, bean的生命期中,初始化銷燬.

我們可以配置bean的初始化和銷燬前的方法, 有三種方法:1,在配置檔案中的<beans>標籤中配置default-init-method="defautInit" default-destroy-method="defaultDestroy"然後在bean中去寫

VUE生命期中的鉤子函數及父子組件的執行順序

使用 lse 同時 不可 例子 來看 發生 探索 group 先附一張官網上的vue實例的生命周期圖,每個Vue實例在被創建的時候都需要經過一系列的初始化過程,例如需要設置數據監聽,編譯模板,將實例掛載到DOM並在數據變化時更新DOM等。同時在這個過程中也會運行一些叫做生命

vue生命週期的理解一些面試題

所有的生命週期鉤子自動繫結 this 上下文到例項中,因此你可以訪問資料,對屬性和方法進行運算。這意味著 你不能使用箭頭函式來定義一個生命週期方法 (例如 created: () => this.fetchTodos())。這是因為箭頭函式綁定了父上下文,因此 this 與你期待的 V

Android Activity生命期中的7個階段

Android Activity生命週期中可認為分為7個階段;用7個函式原型來描述吧 protected void onCreate(Bundle savedInstanceState) protected void onStart() protected void on

vue生命週期、computed屬性 method方法、watch 屬性區別

例項生命週期鉤子函式 beforeCreate 元件例項剛被建立,元件屬性計算之前,如data屬性等 created 元件例項建立完成,屬性已繫結,但DOM還未生成,$el屬性還不存在 beforeMount 模板編譯/掛載之前 mount

vue路由傳參queryparams的區別

get bsp post tro 顯示 安全 建議 gpo ron 1、用法 A、query要用path來引入(用name來引入也可以),接收參數都是this.$route.query.name。 B、params要用name來引入,接收參數都是this.$route.p

vue生命周期react生命周期對比

解決 gin 改變 bubuko detached ash add png ready 一 vue的生命周期如下圖所示(很清晰)初始化、編譯、更新、銷毀 二 vue生命周期的栗子 註意觸發vue的created事件以後,this便指向vue實例,這點很重要

Vue生命週期中的 mounted

mounted() { }      //真實dom渲染完了,可以操作dom了 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">

vue生命週期及例項的屬性方法

vue的生命週期 vue例項從建立到銷燬的過程,稱為生命週期,共八個階段 window.onload=function(){ let vm = new Vue({ el:'#itany', data:{//儲存資料

VueRouterVue生命週期(鉤子函式)

一、vue-router路由 1、介紹 vue-router是Vue的路由系統,用於定位資源的,在頁面不重新整理的情況下切換頁面內容。類似於a標籤,實際上在頁面上展示出來的也是a標籤,是錨點。   2、路由註冊 1. 定義一個路由匹配規則和路由對應元件的物件 let url = [

vue生命週期react生命週期對比

一 vue的生命週期如下圖所示(很清晰)初始化、編譯、更新、銷燬   二 vue生命週期的栗子  注意觸發vue的created事件以後,this便指向vue例項,這點很重要 <!DOCTYPE html> <html> <head> <

Vue中的package.json裡面dependenciesdevDependencies區別

dependencies:應用能夠正常執行所依賴的包。這種 dependencies 是最常見的,使用者在使用 npm install 安裝你的包時會自動安裝這些依賴。devDependencies:開發應用時所依賴的工具包。通常是一些開發、測試、打包工具,例如 webpack、ESLint

Vue 中 computed、methods watch 的區別

<template> <div> <p>使用computed {{ message }}</p> <p>使用methods {{ message() }}<