Vue生命周期中mounted和created的區(qū)別

1霞掺、在使用vue框架的過程中骂束,我們經(jīng)常需要給一些數(shù)據(jù)做一些初始化處理,這時(shí)候我們常用的就是在created與mounted選項(xiàng)中作出處理盗忱。

首先來看下官方解釋,官方解釋說created是在實(shí)例創(chuàng)建完成后立即調(diào)用羊赵。在這一步趟佃,實(shí)例已完成以下配置:數(shù)據(jù)觀測 (data observer),屬性和方法的運(yùn)算,watch/event 事件回調(diào)闲昭。然而罐寨,掛載階段還沒開始,$el 屬性目前不可見序矩。

這話的意思我覺得重點(diǎn)在于說掛架階段還沒開始鸯绿,什么叫還沒開始掛載,也就是說簸淀,模板還沒有被渲染成html瓶蝴,也就是這時(shí)候通過id什么的去查找頁面元素是找不到的。下面看下實(shí)例來證明啃擦。


image.png

看這個(gè)例子的結(jié)果截圖如下囊蓝,此錯(cuò)誤證明找不到id為name的Dom元素。即模板還未渲染成html


image.png

所以令蛉,一般creadted鉤子函數(shù)主要是用來初始化數(shù)據(jù)聚霜。

2、mounted鉤子函數(shù)一般是用來向后端發(fā)起請(qǐng)求拿到數(shù)據(jù)以后做一些業(yè)務(wù)處理珠叔。官方解釋如下:

el 被新創(chuàng)建的 vm.el 替換蝎宇,并掛載到實(shí)例上去之后調(diào)用該鉤子。如果 root 實(shí)例掛載了一個(gè)文檔內(nèi)元素祷安,當(dāng) mounted 被調(diào)用時(shí) vm.el 也在文檔內(nèi)姥芥。

這意思是該鉤子函數(shù)是在掛在完成以后也就是模板渲染完成以后才會(huì)被調(diào)用。下面看實(shí)例


image.png
image.png

取到了值汇鞭,這說明這時(shí)候vue模板已經(jīng)渲染完畢凉唐。因此,Dom操作一般是在mounted鉤子函數(shù)中進(jìn)行的

computed:{} 計(jì)算屬性霍骄,什么是計(jì)算屬性呢台囱,我個(gè)人理解就是對(duì)數(shù)據(jù)進(jìn)行一定的操作,可以包含邏輯處理操作读整,對(duì)計(jì)算屬性中的數(shù)據(jù)進(jìn)行監(jiān)控簿训。計(jì)算屬性是基于它的以來進(jìn)行更新的,只有在相關(guān)依賴發(fā)生改變時(shí)側(cè)能更新變化米间,以函數(shù)的形式返回結(jié)果强品。然后可以像綁定普通屬性一樣在模板中綁定計(jì)算屬性。

<body>
        <div id="box" :class="{a:true,b:true}">
            <div></div>
            {{msg}}
            <div>
                網(wǎng)址 {{msg}}的網(wǎng)絡(luò)協(xié)議是:{{msg2}}
            </div>
        </div>
            <script type="text/javascript">
            window.οnlοad=function(){
                new Vue({
                    el:"#box",
                    data:{
                        msg:"https://www.baidu.com"
                    },
                    computed:{
                        msg2:function(){
                            var s=this.msg.split(":")[0];
                            return s;
                        }
                    }
                })
            }
        </script>
    </body>
image.png

我們從圖中看兩個(gè)節(jié)點(diǎn):
created:在模板渲染成html前調(diào)用屈糊,即通常初始化某些屬性值的榛,然后再渲染成視圖。
mounted:在模板渲染成html后調(diào)用另玖,通常是初始化頁面完成后困曙,再對(duì)html的dom節(jié)點(diǎn)進(jìn)行一些需要的操作表伦。
其實(shí)兩者比較好理解,通常created使用的次數(shù)多慷丽,而mounted通常是在一些插件的使用或者組件的使用中進(jìn)行操作蹦哼,比如插件chart.js的使用: var ctx = document.getElementById(ID); 通常會(huì)有這一步,而如果你寫入組件中要糊,你會(huì)發(fā)現(xiàn)在created中無法對(duì)chart進(jìn)行一些初始化配置纲熏,一定要等這個(gè)html渲染完后才可以進(jìn)行,那么mounted就是不二之選锄俄。下面看一個(gè)例子(用組件)局劲。

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")//第一個(gè)命令臺(tái)錯(cuò)誤
            console.log(x.innerHTML);
        },
        mounted:function(){
            var x = document.getElementById("name")//第二個(gè)命令臺(tái)輸出的結(jié)果
            console.log(x.innerHTML);
        }
    });
    var vm = new Vue({
        el:"#example1"
    })

可以看到輸出如下:


image.png

可以看到都在created賦予初始值的情況下成功渲染出來了。
但是同時(shí)看console臺(tái)如下:


image.png

可以看到第一個(gè)報(bào)了錯(cuò)奶赠,實(shí)際是因?yàn)檎也坏絠d鱼填,getElementById(ID) 并沒有找到元素,原因如下:
在created的時(shí)候毅戈,視圖中的html并沒有渲染出來苹丸,所以此時(shí)如果直接去操作html的dom節(jié)點(diǎn),一定找不到相關(guān)的元素

而在mounted中苇经,由于此時(shí)html已經(jīng)渲染出來了赘理,所以可以直接操作dom節(jié)點(diǎn),故輸出了結(jié)果“唐浩益”扇单。
以上就是我自己總結(jié)的mounted和mounted的區(qū)別商模,寫的比較簡陋,記錄下來蜘澜,加深印象施流。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市鄙信,隨后出現(xiàn)的幾起案子嫂沉,更是在濱河造成了極大的恐慌,老刑警劉巖扮碧,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異丰嘉,居然都是意外死亡捌朴,警方通過查閱死者的電腦和手機(jī)旨指,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赖淤,“玉大人,你說我怎么就攤上這事谅河≡酆担” “怎么了确丢?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長吐限。 經(jīng)常有香客問我鲜侥,道長,這世上最難降的妖魔是什么诸典? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任描函,我火速辦了婚禮,結(jié)果婚禮上狐粱,老公的妹妹穿的比我還像新娘舀寓。我一直安慰自己,他們只是感情好肌蜻,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布互墓。 她就那樣靜靜地躺著,像睡著了一般蒋搜。 火紅的嫁衣襯著肌膚如雪篡撵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天齿诞,我揣著相機(jī)與錄音酸休,去河邊找鬼。 笑死祷杈,一個(gè)胖子當(dāng)著我的面吹牛斑司,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播但汞,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼宿刮,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了私蕾?” 一聲冷哼從身側(cè)響起僵缺,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎踩叭,沒想到半個(gè)月后磕潮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡容贝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年自脯,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片斤富。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡膏潮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出满力,到底是詐尸還是另有隱情焕参,我是刑警寧澤轻纪,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站叠纷,受9級(jí)特大地震影響刻帚,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜讲岁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一我擂、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧缓艳,春花似錦校摩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至溪窒,卻和暖如春坤塞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背澈蚌。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工摹芙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宛瞄。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓浮禾,卻偏偏與公主長得像,于是被迫代替她去往敵國和親份汗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子盈电,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容