Vue框架之生命周期鉤子

2021-01-08 劉小愛

今天是劉小愛自學Java的第137天。

感謝你的觀看,謝謝你。

學習計劃安排如下:

Vue的深入學習,emm準確地說還不能算是深入學習,我有點高估自己的學習進度了。本來打算兩天時間做一個基礎入門的,畢竟教程也就一天的內容,看來計劃趕不上變化。vue中三大常用屬性的小結、生命周期鉤子的了解,以及指令的初步接觸。指令有點多,只能留到明天繼續補全了。一、回顧與生命周期

補充說明三大屬性,當然vue肯定不止這些,只不過時間有限,只學下最常見的。

1回顧

每次new一個Vue實例都需要關聯模板,Vue會基於此模板進行視圖渲染。

①el屬性:指定視圖模板

這裡是通過el+id選擇器指定視圖模板,例子中也就是id為app的div標籤。

當然還可以通過template來指定視圖模板,這種方式我們暫且就不學了。

②data屬性:指定數據模型

data也就對應著數據模型,數據相關的都可以放在這裡面。

③methods屬性:指定方法模型

注意是methods,後面有個s不要忘記了,一開始我直接寫的method,就出了問題。

其實這也很好理解,methods裡面是存放方法的,肯定不止一個,故用複數形式。

例子中helloVue是方法名,其中function可以省略,直接寫一個helloVue方法。

2生命周期鉤子

鉤子,就可以將其理解成回調函數,Vue為生命周期中的每個狀態都設置了鉤子函數。

每當Vue實例處於不同的生命周期時,對應的方法就會被觸發調用,其中生命周期有好幾個狀態,我們只學最常見的兩個:

①created

代表在vue實例創建後,通過控制臺我們可以發現:在創建vue實例之後,Vue才會調用create方法。

②beforeCreate

代表在vue實例創建之前,通過控制臺我們可以發現:在創建vue實例之前,Vue會先調用beforeCreate方法。

注意:這兩個函數這裡是用的省略寫法,省略了function這個關鍵字。

3關於this

this和Java中的意思是差不多的,this用一句話說明就是:「誰調用我,它就是誰。」

我們做一個測試,同時引入幾個知識點:

①setTimeout()

設置一個定時器,有兩個參數:第一個參數為一個函數,第二個參數為定時時間,例子中也就是2000毫秒後執行函數。

此時this指的是Window對象,因為在js中設定了定時器,時間到了後,會由window去調用前面的函數並執行,所以this指的就是它。

②setTimeout()箭頭函數

該方式為ES6中的語法,這塊我們沒有專門學,知道有這個函數即可。

同樣是setTimeout()方法,只不過寫法不同,為何這裡的this指的又是當前vue對象本身?

箭頭函數底層做了處理,將其轉化成了對應的vue對象,顯然這種方式是我們所需要的,以後基本都以箭頭函數這種寫法為主。

二、插值閃爍

有時使用電腦或者手機,因為網速較慢,頁面加載很慢會出現看到源碼的情況,做個測試:

在瀏覽器中設置網絡為3G網絡,在刷新頁面時會先看到{{name}},大約2秒後,頁面加載完成才會顯示正常的數據。

這個也好理解,頁面是從上到下執行的:

當頁面加載到div標籤時,JS還未加載到,所以name的值是多少並不知道。當頁面加載完畢後才能顯示正確的數據。這種情況就叫做差值閃爍,以差值閃爍為例子,引出對於「指令」的學習。

三、指令

什麼是指令?

指令是指帶有 v-前綴的特殊屬性。

例如在回顧中的v-model,代表了就是view和model的雙向綁定。

那差值閃爍的問題怎麼解決呢?

1v-text和v-html

①指令:v-text

將數據輸出到元素內部,如果輸出的數據有HTML代碼,會作為普通文本輸出。

②指令:v-html

將數據輸出到元素內部,如果輸出的數據有HTML代碼,會被渲染。

這個就和jQuery中的html方法太像了。

2v-model

這個指令我們昨天就接觸過,回顧中也有,是應用在input標籤中的text類型中。

其實目前v-model的可使用元素有:

input,select,textarea,checkbox,radio,components(自定義組件)

除了最後一項,其它都是表單的輸入項,我回顧了一下我以前的form表單筆記。

vue中將單選框radio,複選框checkbox單獨拎出來了,這些本來是屬於input的。

我們以複選框作為一個例子。

①checkbox

這就是一個複選框,用v-model指令將它們一一和hobbys這個屬性綁定。

hobbys.join()可以將獲取的元素以參數內容的形式隔開。

②hobbys:[]

這個符號所表示的就是一個數組,和Java中是一樣的。

其中值得注意的是:

多個CheckBox對應一個model時,model的類型是一個數組;單個checkbox值是boolean類型。

最後

時間受限,剩下的只能明天接著說了,謝謝你的觀看。

如果可以的話,麻煩幫忙點個讚,謝謝你。

相關焦點

  • Vue.js系列:生命周期鉤子
    開發人員提供了一個Web開發人員可以在Vue.js應用程式的整個生命周期中使用的各種方法的討論。生命周期鉤子是在Vue對象生命周期的某個階段執行的已定義方法。從初始化開始到它被破壞時,對象都會遵循不同的生命階段。這是一個著名的圖表,表示掛鈎順序。讓我們將代碼添加到鉤子並查看它們如何被解僱的階段。<!
  • 不來看看這些 VUE 的生命周期鉤子函數?|原力計劃 - CSDN
    作者 | huangfuyk責編 | 王曉曼出品 | CSDN 博客VUE的生命周期鉤子函數:就是指在一個組件從創建到銷毀的過程自動執行的函數,包含組件的變化。可以分為:創建、掛載、更新、銷毀四個模塊。註:在組件的整個生命周期內,鉤子函數都是可被自動調用的,且生命周期函數的執行順序與書寫的順序無關。
  • 優美的v-for列表加載動畫:vue動畫鉤子實踐
    原文轉自 優美的v-for列表加載動畫:vue動畫鉤子實踐 https://juejin.im/post/6869195042599206919最近忙完工作,重新擼了一遍vue官方文檔,發現很少被我用到的vue動畫神器,JavaScript鉤子函數
  • vue的$nextTick的使用+源碼分析
    開始前,我覺得我們需要先弄清楚vue的$nextTick是幹什麼用的,它的存在是為了解決什麼問題?大家也可以自問一下。nextTick英文翻譯過來「下一個記號或者標記」,我覺得這裡應該用狀態來描述更加合理一些。
  • Vue 項目中哪些問題戳中你的痛點?你又是如何解決的?(更新中)
    最近要求使用vue進行前後端分離開發微信公眾號,不斷摸索踩坑之後,總結出如下幾點vue項目開發中常見的問題及解決辦法。如果你是vue大佬,請忽略小弟的愚見^V^列表進入詳情頁的傳參問題。如下圖所示:解決方法1:首先我在data函數裡面進行定義定時器名稱:然後這樣使用定時器:最後在beforeDestroy()生命周期內清除定時器:方案1有兩點不好的地方,引用尤大的話來說就是:它需要在這個組件實例中保存這個 timer,如果可以的話最好只有生命周期鉤子可以訪問到它。
  • 如何創建vue項目並使用element框架中的el-select
    1、在電腦硬碟上,找到一個位置,新建一個文件夾wmn;滑鼠右鍵選擇Git Bash Here,並在Git窗口輸入cnpm install --global vue-cli命令:cnpm install --global vue-cli
  • 準備將您的Vue應用遷移到Vue 3
    例如:// price-component.vueimport { toCurrency } from'.警惕使用第三方插件與其他框架一樣,Vue框架的魅力在於,它為社區提供了創建自己的插件的API。但是在Vue 3中,將進行重大更改,這將使某些插件不再兼容。一個主要的變化是,插件的安裝和應用程式的初始化將與原始Vue實例保持不變。
  • 《精通react/vue組件設計》之實現一個健壯的警告提示(Alert)組件
    正文在開始組件設計之前希望大家對css3和js有一定的基礎,並了解基本的react/vue語法.我們先看看實現後的組件效果:1. 組件設計思路按照之前筆者總結的組件設計原則,我們第一步是要確認需求.Alert組件框架設計首先我們先根據需求將組件框架寫好,這樣後面寫業務邏輯會更清晰:import classnames from 'classnames'import styles from '.
  • Vue.js深入學習
    vue.jsv-cloak:解決網速慢閃爍問題 ,不會替換掉標籤裡面的內容v-text:會替換掉標籤裡面的內容:原樣輸出v-html:會解析標籤v-bind:綁定屬性的指令,縮寫//每當指令綁定到元素上的時候,會立刻執行這個bind函數,只執行一次inserted:function(){//元素插入到dom中的時候,會執行一次update:function(){//當VNode更新的時候,會執行,可能會觸發多次});私有指令:diectives:{}Vue生命周期
  • RegularJS —— 來自網易的JavaScript MVC框架
    看到 regular 的名字就能感受到撲面而來的山寨味,在開始前,我還是要說明下regularjs出現絕對不僅僅是作者的造輪子情緒泛濫的結果Angularjs的火爆以及它的小夥伴們Angularjs從12年開始開始火爆起來, 數據驅動的業務實現方式也由此深入人心, 它的數據更新策略基於髒檢查,在明確內部的生命周期後在數據綁定的使用上是最為靈活的
  • React生命周期的正解
    關注 入坑網際網路 ,回復「加群」加入我們一起學習,天天進步前言任何一個應用程式都會有自己的完整生命周期。只有了解生命周期才有可能寫出性能更好更健壯的應用程式。當然對比後端,前端對生命周期的定義理解使用場景還是有很大區別。
  • 一張圖教你快速玩轉vue-cli3
    你將會了解如下知識點:如何安裝項目插件添加瀏覽器支持如何配置scss/stylus共享全局變量如何整合eleemntUI等第三方框架並實現按需引入1.安裝項目插件vue add @vue/cli-plugin-eslint# 或vue add xjFilevue add 的設計意圖是為了安裝和調用 Vue CLI
  • 如何寫一個vue組件專題及常見問題 - CSDN
    computed 屬性vue 的 computed 屬性默認是只讀的,你可以提供一個 setter。你的輸入值不可能總是 value ,你的事件不可能總是 input,具體詳見文檔sync(雙向綁定語法糖)vue 真的是方便了開發者很多,站在開發者的角度考慮,很大的提升開發效率以 update:myPropName 的模式觸發事件取代雙向綁定this.
  • 箭牌定製衛浴,陪你走過生命周期的每一步
    家庭的生命周期理論開始於20世紀30年代,**早由希爾和漢森提出,它是在綜合多個學科的基礎上提出來的,正式運用到家庭工作上是20世紀50年代,興盛於70年代。任何家庭都有生命周期,包括:生理需求、文化規範和人的願望和價值觀,家庭發展的任務是滿足人們成長的需要,否則家庭會產生不愉快。
  • 我發現了 Vue.js 中的性能陷阱
    我的團隊遲到了一天,然後用猜拳的方式選擇了我們要用的框架;我們飛快地寫完了代碼,並在周末結束時做出了遊戲的可運行版本。在本地測試時一切都很順利。自然,我們為自己第一次寫出來的遊戲作品感到自豪,並希望與世界分享它。可是問題出現了——當我們構建好應用並開始查詢域時,內存佔用爆表了。
  • 國運之本:工業化進程下的國家生命周期
    但是長周期的宏觀框架又有各種問題,從 18 世紀的約翰勞時代,我們的宏觀經濟學者用各種理論框架去指引不同時期的宏觀經濟,但是由於經濟運行本身就是人類經濟活動和科技創新的動態,在一個國家的不同發展周期必然會存在不同的作用,亞當斯密的自由主義盛行百年後被大蕭條終結,之後才有了各國央行正式登上宏觀調控的舞臺,凱恩斯主義開始盛行。
  • 精通react/vue組件設計之配合React Portals實現一個(Drawer)組件
    通過組件的設計過程,大家會接觸到一個完成健壯的組件設計思路和方法,也能在實現組件的過程逐漸對react/vue的高級知識和技巧有更深的理解和掌握,並且在企業實際工作做遊刃有餘.作為數據驅動的領導者react/vue等MVVM框架的出現,幫我們減少了工作中大量的冗餘代碼, 一切皆組件的思想深得人心.
  • Vue.js最佳靜態站點生成器對比
    用戶變多後,這個框架開始將觸角伸向了靜態站點生成,一個曾經由 React 統治的領域。就像 React 這邊的 Gatsby 和 NextJS 一樣,Vue.js 這邊支持靜態網站生成的框架也有不少。但考慮到它們提供的眾多功能,想要挑一個合適的並不容易。因此在本文中,我會向大家介紹用於靜態站點生成的四大 Vue.js 框架,並對它們做詳細對比,幫助找到適合你用例的選項。
  • 10個簡單的技巧讓你的 vue.js 代碼更優雅 - 酷扯兒
    最簡單的方法就是改寫組件的生命周期函數,使其在mounted/beforeUpdata /updatad時通知父組件顯示或者隱藏 loading。這樣做顯示不好,因為侵入了自組件的邏輯,增加的邏輯也和組件本身的功能好不關聯。
  • vue 渲染函數插槽專題及常見問題 - CSDN
    從一個簡單的例子開始:// frame.vue這個組件最外層是一個div。假設div的存在是為了圍繞其內容創建一個樣式框架。這個組件可以通用地用於將框架包圍在wq你想要的任何內容上,來看看它是怎麼用的。這裡的frame組件指的是我們剛才做的組件。