Ⅰ web里display隱藏的盒子內容在頁面剛登陸時怎麼能不顯示出來
那是因為只需設置 display:none; 即可將該元素設為隱藏的。
默認的是顯示的,即不設置display即默認顯示。isplay 屬性規定元素應該生成的框的類型,定義建立布局時元素生成的顯示框類型。display的值可以取如下的值: none 此元素不會被顯示。block 此元素將顯示為塊級元素,此元素前後會帶有換行符。inline 默認。此元素會被顯示為內聯元素,元素前後沒有換行符。inline-block 行內塊元素。(CSS2.1 新增的值)
Ⅱ web前端,這個咋回事
這個是頁面的,自想ing功能,沒有做好。
Ⅲ WEB前端面試題
第二章 面試題基礎篇
2.1 HTML面試題
面試題:行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?
面試題:頁面導入樣式時,使用link和@import有什麼區別?
面試題:title與h1的區別、b與strong的區別、i與em的區別?
面試題:img標簽的title和alt有什麼區別?
面試題:png、jpg、gif 這些圖片格式解釋一下,分別什麼時候用?
2.2 CSS面試題
面試題:css背景紋路
面試題:介紹一下CSS的盒子模型
面試題:CSS選擇符有哪些?哪些屬性可以繼承?
面試題:CSS優先順序演算法如何計算?
面試題:用CSS畫一個三角形
面試題:一個盒子不給寬度和高度如何水平垂直居中?
面試題:display有哪些值?說明他們的作用。
面試題:對BFC規范(塊級格式化上下文:block formatting context)的理解?
面試題:清除浮動有哪些方式?
面試題:在網頁中的應該使用奇數還是偶數的字體?為什麼呢?
面試題:寫一個左中右布局占滿屏幕,其中左、右倆塊固定寬200,中間自適應寬,要求先載入中間塊,請寫出結構及樣式。
面試題:什麼是CSS reset?
面試題:css sprite是什麼,有什麼優缺點
面試題:display: none;與visibility: hidden;的區別
面試題:position有哪些值?有什麼作用? 【特別多公司問】
面試題:line-height和height有什麼區別?
面試題:opacity 和 rgba區別
2.3 JavaScript基礎面試題
面試題:延遲載入JS有哪些方式?
面試題:JS數據類型有哪些?
面試題:null和undefined的區別
面試題:JS數據類型考題
面試題:==和===有什麼不同
面試題:JS微任務和宏任務
面試題:JS作用域考題
面試題:JS對象考題
面試題:JS作用域+this指向+原型 考題
面試題:JS判斷變數是不是數組,你能寫出哪些方法?
面試題:slice是幹嘛的、splice是否會改變原數組
面試題:JS數組去重
面試題:找出多維數組最大值
面試題:給字元串新增方法實現功能
面試題:找出字元串出現最多次數的字元以及次數
2.4 真正移動端 —— H5/C3面試題
面試題:什麼是語義化標簽
面試題:::before 和 :after中雙冒號和單冒號 有什麼區別?解釋一下這2個偽元素的作用。
面試題:如何關閉iOS鍵盤首字母自動大寫
面試題:怎麼讓Chrome支持小於12px 的文字?
面試題:rem和em有什麼樣區別
面試題:ios系統中元素被觸摸時產生的半透明灰色遮罩怎麼去掉
面試題:webkit表單輸入框placeholder的顏色值能改變嗎?
面試題:禁止ios 長按時不觸發系統的菜單,禁止ios&android長按時下載圖片
面試題:禁止ios和android用戶選中文字
面試題:自適應 [淘寶無線適配]
面試題:響應式
第三章 面試題進階篇
3.1 JavaScript進階面試題
面試題:new操作符具體做了什麼
面試題:閉包 【必須會】
面試題:原型鏈 【必須會】
面試題: JS繼承有哪些方式
面試題:說一下call、apply、bind區別
面試題:sort背後原理是什麼?
面試題:深拷貝和淺拷貝
面試題:localstorage、sessionstorage、cookie的區別
3.2 ES6面試題
面試題:var、let、const區別
面試題:作用域考題
面試題:將下列對象進行合並
面試題:箭頭函數和普通函數有什麼區別?
面試題:Promise有幾種狀態
面試題:find和filter的區別 【大廠】
面試題:some和every的區別 【大廠】
3.3 webpack面試題
面試題:webpack插件
3.4 Git面試題
面試題:git常用命令
面試題:解決沖突
面試題:GitFlow
第四章 面試題框架篇
4.1 區分初中高級的 —— Vue面試題
面試題:Vue2.x 生命周期有哪些?
1.系統自帶八個
2.當一旦進入到某個組件會執行哪些生命周期
3.$el和$data在哪個階段有
4.如果使用keep-alive會多倆個生命周期
5.如果加入keep-alive第一次進入組件會執行哪些生命周期
6.如果加入keep-alive第二次或者第N進入該組件會執行哪些生命周期
面試題:談談你對keep-alive的了解
面試題:v-if和v-show區別
面試題:v-if和v-for優先順序 2.x
面試題:ref是什麼?
面試題:nextTick是什麼?
面試題:Vue中如何做樣式穿透
面試題:scoped原理
面試題:Vuex是單向數據流還是雙向數據流?
面試題:講一下MVVM
面試題:雙向綁定原理
面試題:什麼是虛擬DOM
面試題:key是干什麼?
面試題:diff演算法
面試題:Vue組件傳值
面試題:props和data優先順序誰高?
面試題:computed、methods、watch有什麼區別?
面試題:Vuex
面試題:Vue路由
面試題:Vue項目打包後出現空白頁
4.2 微信小程序面試題
面試題:如何自定義頭部?
面試題:如何自定義底部?
4.3 uni-app面試題
面試題:生命周期
面試題:條件編譯
第五章 面試題性能優化篇
Ⅳ web前端筆試題(HTML/CSS篇)
web前端筆試題集錦(HTML/CSS篇)
導讀:網頁不再只是承載單一的文字和圖片,各種富媒體讓網頁的內容更加生動,網頁上軟體化的交互形式為用戶提供了更好的使用體驗,這些都是基於前端技術實現的。以下是由我J.L為您整理推薦的前端開發筆試題目,歡迎參考閱讀。
一、HTML/CSS
1,讓一個input的背景顏色變成紅色
2,div的高寬等於瀏覽器可見區域的高寬,瀏覽器滾動,div始終覆蓋瀏覽器的整個可見區域
思路:
(1)先放置一個div1,浮動:position:absolute;top:0px;left:0px;
(2)再放置一個div2,浮動:position:absolute;top:0px;left:0px;width:100%;height:100%;
(3)在div2中放置一個div3,令其高度超過瀏覽器高度,使div2產生滾動條
(4)對html,body進行樣式設置:width:100%;height:100%;overflow:hidden->不讓瀏覽器產生滾動條,避免頁面出現兩個滾動條
(5)編寫JavaScript,另div2的高度等於頁面可見高度,寬度等於頁面可見寬度,注意,在計算完可見高度height和可見寬度width後,要對這兩個值做處理,可見寬度-div2的滾動條的寬度,滾動條的寬度我這里假設是20px
這樣題目基本就完成了,不過瀏覽器的兼容性還不是很好。
3,IE、FF下面CSS的解釋區別
(1) 讓頁面元素居中
ff{margin-left:0px;margin-right:0px;width:***}
ie上面的設置+text-align:center
(2) ff:不支持濾鏡
ie:支持濾鏡
(3) ff:支持!important
ie支持*,ie6支持_
(4) min-width,min-height
FF支持,IE不支持,IE可以用css expression來替代
(5) Css Expression
FF不支持,IE支持
(6) cursor:hand
IE下可以顯示手指狀,FF下不行
(7) UL的默認padding和margin
IE下ul默認有margin,FF下ul默認有padding
(8) FORM的默認margin
IE下FORM有默認margin,FF下margin默認為0
4,一個定寬元素在瀏覽器(IE6,IE7,Firefox)中橫向居中對齊的布局,請寫出主要的.HTML標簽及CSS
思路:
IE6/7:text-align:center
Firefox:margin:0 auto(margin-top和margin-bottom也可以為其他數字,關鍵是margin-left,margin-right為auto)
5,CSS中margin和padding的區別
margin是元素的外邊框,是元素邊框和相鄰元素的距離
Padding是元素的內邊框,是元素邊框和子元素的距離
6,最後一個問題是,如何製作一個combo選項,就是可以輸入可以下拉菜單選擇。
思路:
(1)布局select和input,讓input覆蓋select,除了select的下拉圖標,以方便select選擇
(2)編寫JS,為select添加onchange事件,onchange時將input的value置成select選中的指
7,
中alt和tittle的區別
alt:圖片顯示不出來了就提示alt
title:滑鼠劃過圖片顯示的提示
8,用css、html編寫一個兩列布局的網頁,要求右側寬度為200px,左側自動擴展。
在這里我使用了兩種方式:
(1)使用position
HTML:
left
right
(2) 使用float
HTML:
固定寬度
自適應
二者的CSS公用,如下:
html,body{width:100%;height:100%;margin:0px;padding:0px;}
.container {width:100%;height:400px;position:relative;}
.fl1 {float:left;}
.left {width:100%;height:400px;background:#AFFFD0;position:absolute;}
.right {width:200px;height:400px;background:#F9AFFF;position:absolute;right:0px;top:0px;}
.clear {clear:both;overflow:hidden;height:0px;}
.container2 {width:100%;height:400px;margin-top:100px;}
.left2 {background:#afffd0;height:400px;width:200px;margin-right:-3px;}
.right2 {height:400px;background:#f9afff;}
9,解釋document.getElementByIdx_x_x_x("ElementID").style.fontSize="1.5em"
em是相對長度單位,相當於當前對象內文本的字體尺寸,如果當前行內文本的字體尺寸未被指定,則相對於瀏覽器的默認字體尺寸。
該語句將id為ElementID的元素的字體設置為當前對象內文本的字體尺寸的1.5倍
10,Doctype? 嚴格模式與混雜模式-如何觸發這兩種模式,區分它們有何意義? 行內元素有哪些?塊級元素有哪些?CSS的盒模型?
DOCTYPE是文檔類型,用來說明使用的HTML或者XHTML是什麼版本,其中的DTD叫文檔類型定義,裡麵包含了文檔規則,瀏覽器根據定義的DTD來解析頁面的標識並展現出來
DOCTYPE有兩種用途:一個可以進行頁面的有效性驗證,另一個可以區分瀏覽器使用嚴格模式還是混雜模式來解析CSS。
嚴格模式和混雜模式是瀏覽器解析CSS的兩種模式,目前使用的大部分瀏覽器對這兩種模式都支持,但是IE5隻支持混雜模式。
可那個過DOCTYPE聲明來判斷哪種模式被觸發
(1) 沒有DOCTYPE聲明的網頁採用混雜模式解析
(2) 對使用DOCTYPE聲明的網頁視不同瀏覽器進行解析
(3) 對於瀏覽器不能識別的DOCTYPE聲明,瀏覽器採用嚴格模式解析
(4) 在ie6下,如果在DOCTYPE聲明之前有一個xml聲明比如
,採用混雜模式解析,在IE7,IE8中這條規則不生效。
(5) 在ie下,如果DOCTYPE之前有任何字元,都會導致它進入混雜模式,如:
區分這兩種模式可以理解瀏覽器解析CSS的區別,主要是在盒模式的解釋上。
常見的塊級元素有:DIV,FORM,TABLE,P,PRE,H1~H6,DL,OL,UL等
常見的內聯元素:SPAN,A,STRONG,EM,LABEL,INPUT,SELECT,TEXTAREA,IMG,BR等
CSS盒模型用於描述為一個HTML元素形成的矩形盒子,盒模型還涉及元素的外邊距,內邊距,邊框和內容,具體來講最裡面的內容是元素內容,直接包圍元素內容的是內邊距,包圍內邊距的是邊框,包圍邊框的是外邊距。內邊距,外邊距,邊框默認為0。
11,CSS引入的方式有哪些? link和@import的區別?
引入css的方式有下面四種
(1) 使用style屬性
(2) 使用style標簽
(3) 使用link標簽
(4) 使用@import引入
Link和@import區別:
(1) link屬於XHTML標簽,@import是CSS提供的一種方式。Link除了載入CSS外,還可以做很多事情,如定義RSS,rel連接屬性等;@import只能載入CSS
(2)載入順序不同,當頁面被載入的時候,link載入的CSS隨之載入,而@import引用的CSS會等到頁面完全下載完之後才會載入
(3)兼容性差別,由於@import是CSS2.1提出的,所以老的瀏覽器不支持,IE系列的瀏覽器IE5以上才能識別,而link沒有這個問題
使用DOM控制樣式的差別,使用JavaScript控制DOM去改變樣式的時候,只能操作link,@import不可以被DOM操作。
12,如何居中一個浮動元素?
一個浮動元素裡麵包含的元素可以水平居中,原理如下:
讓浮動元素left相對於父元素container右移50%,浮動元素left的子元素left-child相對於left左移50%就可以實現left-child相對於container水平居中
垂直居中類似,不過操作的不是left而是top
13,HTML5和CSS3的了解情況
有所了解
HTML5和CSS3分別是新推出的HTML和CSS規范,前世是XHTML2和CSS2,目前還在草案階段,不過得到了Apple,Opera,Mozilla,Google,Microsoft不同程度的支持,也開發出了不少基於他們的應用。
HTML5相對於原來的HTML規范有一些變化:
(1)DOCTYPE更簡潔
(2)新增了一些語義化標簽,如article,header,footer,dialog等
(3)新增了一些高級標簽,如,,
CSS3相對於CSS2也新增了不少功能
(1) 選擇器更加豐富
(2) 支持為元素設置陰影
(3) 無需圖片能提供圓角
14,你怎麼來實現下面這個設計圖
(1) 切圖
(2) 布局,採用兩欄布局,分別左浮動
(3) 編寫css代碼
15,css 中id和class如何定義,哪個定義的優先順序別高?
id:#***,***為HTML中定義的id屬性
class:.***,***為HTML中定義的class屬性
id比class的優先順序高
16,用html實現如下表格(不如嵌套實用表格)
三行三列,其中第一行第一列和第二行第一列合並; 第二行第二列和第二行第三列合並(現場畫表)
運行結果如下:
17,web標准網站有那些優點
(1) Web標准網站結構和布局分離,使網站的訪問和維護更加容易
(2) Web標准網站結構,布局以及頁面訪問都標准化,使網站能在更多的web標准設備中訪問,兼容性更好
(3) Web標准網站語義化更好,語義化的XHTML不僅對用戶友好,對搜索引擎也友好。
;Ⅳ 電信盒子添加隱藏Wi-Fi
1、打開盒子進入盒子主頁。
2、用遙控器左右選擇找到」設置「中的」系統設置「。
3、進入」系統設置「找到無線網的圖標,就可以進入無線設置界面了。
4、在無線設置中我們找到」手動添加網路「。
5、在手動添加網路中我們輸入ssid,選擇加密方式,輸入加密密碼,然後點擊」提交「就可以直接連接了。
6、這樣我們回到主界面就可以看到網路圖標顯示連接成功了。
7、這樣我們就可以添加隱藏無線網,然後連接到互聯網了。這樣我們就可以使用我們的盒子看視頻了。
Ⅵ 有做web前端的朋友請進,web前端學好很難嗎比後端如何,師傅說前端不容易啊,迷茫中
自從接觸網站開發以來到現在已經有六個年頭了,今天偶然整理電腦資料看到當時為參加系裡面一個比賽而做的第一個網站時,勾起了在這網站開發道路上的一串串回憶,成功與喜悅、煩惱與糾結都歷歷在目,感慨頗多。在此與大家分享,希望對初學Web前端的各位童鞋來說有所幫助。歡迎各位吐槽、拍磚。
先從大家學習上的一個誤區開始談起。
在CSS布局時需要注意的一個問題是很多同學缺乏對頁面布局進行整體分析,不能夠從宏觀上對頁面中盒子間的嵌套關系進行把握,就急於動手去做,導致頁面中各元素間的關系很混亂,容易出現盒子在浮動時錯位等情況。建議大家在布局時採用「自頂向下,逐步細化」的思想,先用幾個盒子將頁面從整體上劃分,然後逐步在盒子中繼續嵌套盒子。
「君子生非異也,善假於物也」,在學習的過程中還要多瀏覽一些優秀的網站,善於分析借鑒其設計思路和布局方法,見多方能識廣,進而才可以融會貫通,取他人之長為我所用。
同時還要善於使用Firebug這個利器。Firebug一方面可以在我們學習過程中幫助我們調試自己的頁面,另一方面我們可以使用Firebug方便地查看、分析別人網站的源代碼,「偷」也是一種技能!
隨著移動互聯網熱潮的到來,移動開發越來越受到大家的追捧,響應式布局、微網站等需求量不斷增加,也是我們Web前端未來的發展方向之一,學有餘力的同學可以多多關注。最後祝願大家能在Web前端開發道路上走出一片更寬更廣的天地!
Ⅶ Web前端企業面試題
答:
一、display和visibility的相同與不同點
1、相同點:display和visibility都有講元素隱藏的意思
2、不同點:display是元素隱藏,隱藏的元素不佔文檔流
而visibility隱藏的元素仍然占文檔流
二、display和visibility的屬性值
1、display
2、visibility
答:
在開發過程中經常需要循環遍歷數組或者對象,使用最多的方法 forEach、for…in 、 for…of ,整理一下他們的異同點
for循環
其實除了這三種方法以外還有一種最原始的遍歷,自Javascript誕生起就一直用的 就是for循環,它用來遍歷數組
for循環中可以使用return、break等來中斷循環
結果:
forEach
對數組的每一個元素執行一次提供的函數(不能使用return、break等中斷循環),不改變原數組,無返回值undefined。
輸出結果:
for…in
循環遍歷的值都是數據結構的鍵值
總結一句: for in也可以循環數組但是特別適合遍歷對象
結果:
for…of
它是ES6中新增加的語法,用來循環獲取一對鍵值對中的值
循環一個數組
循環一個普通對象(報錯)
答:
px:像素(Pixel),相對長度單位。像素px是相對於顯示器屏幕解析度而言的 。--即解析度不同的機型當前對應的距離可能發生變化。(1Inches=xPx)。
所以相對於同一機型來說是一個絕對的長度單位。
em:是相對長度單位。相對於當前對象內文本的字體尺寸。如當前對行內文本的字體尺寸未被人為設置,則相對於瀏覽器的默認字體尺寸 。
以其父級元素為基準來變化長度。所以其演算法不是一個固定的值。
rem:是CSS3新增的一個相對單位(root em,根em) 。
那麼其好用在用可以直接設置HTML的font-size,然後在其子類都是以這個大小為基準變化的值。
在移動設備上,我們常常設置
此方式的目的是為了將當前屏幕(PC)解析度的px轉化成手機端的px,讓px在手機上能夠兼容此方式。
因此,此時看見的12px與PC端的12px無異。但是,如果不寫著個meta的話,那麼,瀏覽器會一直以PC的視圖來決定手機端的px的大小,讓視圖看起來變小了很多。
那麼,響應式頁面則經常配合媒體查詢media 來設置不同解析度下手機的各種不同的配置機構,然後根據父級來變化所有的相對長度。
基礎篇
1.shift
// 刪除原數組的第一項,並返回刪除元素的值,如果數組為空則返回undefined
2.unshift
// 將參數添加到原數組開頭,並返回數組的長度
//註:此方法在ie6.0下
// 測試的返回值始終為undefined,在firefox下測試的返回值為7,所以此方法不可靠
// 一般需要用返回值時可用splice代替
3.pop
// 刪除原數組的最後一項,並返回刪除元素的值;如果數組為空則返回undefined
4.push
// 將參數添加到原數組末尾,並返回數組的長度
5.concat
// 返回一個新數組,是將參數添加到原數組中構成的
6.splice
7.reverse
8.sort(orderfunction)
9.slice(start,end)
10.join(separator)
11.indexOf
12.lastIndexOf
13. Array.isArray()
14. Array.toString()
進階篇
1.forEach
是最為常用的情景,它至於遍歷,可以在獲取當前數據項的前提下,對數據進行修改。它沒有返回值。理解起來也是最容易的。
2.map
map的本意就是映射,也就是將一個值從一種形式映射到另一種形式,比如將key映射到value。它的每一次遍歷都會有一個返回值。這些返回值組合成最終的結果數組。事實就是如此
forEach和map對比
相同點
1)都是循環遍歷數組中的每一項;
2)forEach()和map()匿名函數的參數相同,參數分別是item(當前每一項)、index(索引值)、arr(原數組);
3)this都是指向調用方法的數組;
4) 只能遍歷數組;
不相同點
1)map()創建了新數組,不改變原數組;forEach()可以改變原數組。
2)遇到空缺的時候map()雖然會跳過,但保留空缺;forEach()遍歷時跳過空缺,不保留空缺。
3)map()按照原始數組元素順序依次處理元素;forEach()遍歷數組的每個元素,將元素傳給回調函數。
3.filter
它致力於從已有的數組中篩選出符合一定條件的數據項,最後的返回值是所有符合條件的數據項構成的數組。它不會修改原來的數組。記住,它的立足點就是篩選。也僅僅是篩選。還有一點需要注意:每一次遍歷都會有一個返回值,它的類型是布爾類型。返回值只有是true,當前遍歷項才會被篩選中。不要試圖在filter中去修改原始數組。
理解: 就是在一堆數據裡面去篩選你需要的數據 或者 剔除你不需要的數據
4.find()
返回通過測試的數組的第一個元素的值,
理解:假如你去一個一群人的地方去找人 你說我找xxb 他要是在那裡就找到 不在那裡就是undefined
在第一次調用 callback 函數時會確定元素的索引范圍,因此在 find 方法開始執行之後添加到數組的新元素將不會被 callback 函數訪問到。如果數組中一個尚未被callback函數訪問到的元素的值被callback函數所改變,那麼當callback函數訪問到它時,它的值是將是根據它在數組中的索引所訪問到的當前值。被刪除的元素仍舊會被訪問到。
語法
array.find(function(value, index, arr),thisValue)
value:必須,代表當前元素,其他四個參數都是可選,index代表當前索引值,arr代表當前的數組,thisValue代表傳遞給函數的值,一般用this值,如果這個參數為空,undefined會傳遞給this值
返回值:返回符合測試條件的第一個數組元素的值,如果沒有符合條件的則返回undefined。
擴展: findIndex()方法的用法與find()方法非常類似,返回第一個符合條件的數組成員的位置,如果所有成員都不符合條件,則返回-1。自己try吧
5.every
理解: 這個就像 上課了 老師說 昨天布置的作業 只要有一個人沒有寫完 今天就不講課 然後挨個檢查 當檢查到有一個沒有寫完的時候 就不檢查了 返回 不講課了(false)
6.some
理解: 相當於在一個數組裡面找你想要的那個數 找到了 就返回true 找不到就返回false
7.rece
它這個方法是接收一個函數作為累加器,將數組中的值(從左向右)開始合並,最總為一個值 然後返回出來,callback
他可以傳四個參數:
1,previousValue:上一次調用回調返回的值,或者是提供的初始值(initialValue)
2,currentValue:數組中當前被處理的元素
3,index:不啰嗦,自己顧名思義去吧
4,array:返回調用rece的數組
彩蛋: 這里附上前幾天某某人比較喜歡的切割字元串的方法
substring() 和 substr()
相同點: 如果只是寫一個參數,兩者的作用都一樣:都是是截取字元串從當前下標以後直到字元串最後的字元串片段。
不同點: 第二個參數
substr(startIndex, lenth) // 第二個參數是截取字元串的長度(從起始點截取某個長度的字元串);
substring(startIndex, endIndex) // 第二個參數是截取字元串最終的下標 (截取2個位置之間的字元串,『含頭不含尾')。
1:在使用vue框架的過程中,我們經常需要給一些數據做一些初始化處理,這時候我們常用的就是在created與mounted選項中作出處理。
首先來看下官方解釋,官方解釋說created是在實例創建完成後唄立即調用。在這一步,實例已完成以下配置:數據觀測 (data observer),屬性和方法的運算,watch/event 事件回調。然而,掛載階段還沒開始,$el 屬性目前不可見。
這話的意思我覺得重點在於說掛架階段還沒開始,什麼叫還沒開始掛載,也就是說,模板還沒有被渲染成html,也就是這時候通過id什麼的去查找頁面元素是找不到的。下面看下實例來證明。
所以,一般creadted鉤子函數主要是用來初始化數據。
2:mounted鉤子函數一般是用來向後端發起請求拿到數據以後做一些業務處理。官方解釋如下:
el 被新創建的 vm.$el 替換,並掛載到實例上去之後調用該鉤子。如果 root 實例掛載了一個文檔內元素,當 mounted 被調用時 vm.$el 也在文檔內。
這意思是該鉤子函數是在掛在完成以後也就是模板渲染完成以後才會被調用。下面看實例
下面是結果
nihao
取到了值,這說明這時候vue模板已經渲染完畢。因此,Dom操作一般是在mounted鉤子函數中進行的
computed:{} 計算屬性,什麼是計算屬性呢,我個人理解就是對數據進行一定的操作,可以包含邏輯處理操作,對計算屬性中的數據進行監控。計算屬性是基於它的以來進行更新的,只有在相關依賴發生改變時側能更新變化,以函數的形式返回結果。然後可以像綁定普通屬性一樣在模板中綁定計算屬性。
總結:
通常created使用的次數多,而mounted通常是在一些插件的使用或者組件的使用中進行操作,比如插件chart.js的使用: var ctx = document.getElementById(ID);通常會有這一步,而如果你寫入組件中,你會發現在created中無法對chart進行一些初始化配置,一定要等這個html渲染完後才可以進行,那麼mounted就是不二之選。
methods:{}中的方法都需要主動去觸發,比如點擊click之類的
而created(){}、mounted(){}、裡面的代碼都是自動去執行的,即vue生命周期到了哪一步就直接去執行對應鉤子函數裡面的代碼了,無需手動去執行
created中主要放初始化獲取數據之類,mounted()中掛載到具體的DOM節點
computed:{} 計算屬性,什麼是計算屬性呢,我個人理解就是對數據進行一定的操作,可以包含邏輯處理操作,對計算屬性中的數據進行監控。計算屬性是基於它的以來進行更新的,只有在相關依賴發生改變時側能更新變化,以函數的形式返回結果。然後可以像綁定普通屬性一樣在模板中綁定計算屬性。
mounted 是生命周期鉤子,vue的生命周期中一個實例的mounted只會運行一次。mounted在vue的渲染模板掛載到$el元素上才會調用,很顯然你export的時候el都么有自然不會運行mounted鉤子函數了。
所有的方法都應該在methods里定義,然後在created或者mounted里 使用this調用方法,用這種方式實現初始化
6、Vue中組件之間的傳參方式有哪些方式?
Vue 組件傳參的八種方式總結
Vue 組件的使用不管是在平常工作還是在面試面試中,都是頻繁出現的。因此系統的梳理一下組件之間的傳參還是非常有必要的
一、props 傳參
子組件定義 props 有三種方式:
// 第一種數組方式
// 第二種對象方式
// 第三種對象嵌套對象方式
第三種對象默認支持 4 種屬性,並且都是非必填的。可以隨意使用
父組件傳參的倆種方式
第一種靜態屬性傳參
注意:
1、在不定義 props 類型的情況下 props 接受到的均為 String。
2、當 props 屬性指定為 Boolean 時,並且只有屬性 key 沒有值 value 時接受到的是 true
第二種動態屬性傳參
注意:
1、需要區分非簡寫形式傳入的值是對象,則會對應 props 中多個值
2、會保留傳入值的類型
3、如果是表達式則獲取到的是表達式的計算結果
二、attrs 和listeners
$attrs
$attrs 會獲取到 props 中未定義的屬性(class 和 style 屬性除外),支持響應式。常用的場景有倆種:
組件嵌套組件時可以使用 $attrs 來支持過多的屬性支持。比如 elementUI 的 table 組件。支持的屬性十幾個,而平常封裝的時候用的最多的也就一倆個。
屬性默認是添加在父組件上的,有時候想把多餘的屬性添加在子組件上(可以結合 inheritAttrs: false 屬性,讓父屬性不接受多餘的屬性)
$listeners 定義的事件都在子組件的根元素上,有時候想加到其他元素上。就可以使用 $listerners。它包含了父組件中的事件監聽器(除了帶有 .native 修飾符的監聽器)
三、$emit 通知
這里有一道考題: for 循環的時候如何拿到子組件的傳值和 for 中循環的值
答案有倆種,一是 $event, 二是 閉包。只是需要注意 $event 只能獲取到第一個值
四、v-model
這個其實是一種通過 emit,on 的組合方式。優點再於同步值方便,寫法優雅。下面三種寫法其實是一個意思
五、插槽
六、$refs, $root, $parent, $children
$root 獲取根組件
$parent 獲取父組件
$children 獲取子組件(所有的子組件,不保證順序)
$refs 組件獲取組件實例,元素獲取元素
七、project / inject
注意:注入的值是非響應的
八、Vuex
這個相當於單獨維護的一組數據,就不過多的說了。
watch,computed和methods的關系
1.watch和computed都是以Vue的依賴追蹤機制為基礎的 ,它們都試圖處理這樣一件事情:當某一個數據(稱它為依賴數據)發生變化的時候,所有依賴這個數據的「相關」數據「自動」發生變化,也就是自動調用相關的函數去實現數據的變動。
2.對methods:methods裡面是用來定義函數的,很顯然,它需要手動調用才能執行。而不像watch和computed那樣,「自動執行」預先定義的函數
watch和computed各自處理的數據關系場景不同
1. watch 擅長處理的場景: 一個數據影響多個數據
2. computed 擅長處理的場景: 一個數據受多個數據影響
watch用法 監聽下記haiZeiTuan_Name的值,會改變其他所有的值
結果:this.suoLong會變為 '橡膠海賊團索隆',以此類推
computed用法 監聽下記firstName,secName,thirdName的值,會改變luFei_Name的值
methods和computed的區別例子
注意兩次點擊computed返回的時間是相同的!!
1.兩次點擊methods返回的時間是不同的
2.注意兩次點擊computed返回的時間是相同的
【注意】為什麼兩次點擊computed返回的時間是相同的呢?new Date()不是依賴型數據 (不是放在data等對象下的實例數據) ,所以computed只提供了緩存的值,而沒有重新計算
只有符合:1.存在依賴型數據 2.依賴型數據發生改變這兩個條件 ,computed才會重新計算。
參考:http://www.cnblogs.com/penghuwan/p/7194133.html
答:https://codecat.blog.csdn.net/article/details/100031285
1、Promise
Promise 是非同步編程的一種解決方案,比傳統的解決方案——回調函數和事件——更合理和更強大,簡單地說,Promise好比容器,裡面存放著一些未來才會執行完畢(非同步)的事件的結果,而這些結果一旦生成是無法改變的
2、async await
async await也是非同步編程的一種解決方案,他遵循的是Generator 函數的語法糖,他擁有內置執行器,不需要額外的調用直接會自動執行並輸出結果,它返回的是一個Promise對象。
兩者的主要用法、語法就不贅述了,感興趣的同學可以自行查閱 es6中文文檔
兩者的區別
1、Promise的出現解決了傳統callback函數導致的「地域回調」問題,但它的語法導致了它向縱向發展行成了一個回調鏈,遇到復雜的業務場景,這樣的語法顯然也是不美觀的。而async await代碼看起來會簡潔些,使得非同步代碼看起來像同步代碼,await的本質是可以提供等同於」同步效果「的等待非同步返回能力的語法糖,只有這一句代碼執行完,才會執行下一句。
2、async await與Promise一樣,是非阻塞的。
3、async await是基於Promise實現的,可以說是改良版的Promise,它不能用於普通的回調函數。
簡單來看,這兩者除了語法糖不一樣外,他們解決的問題、達到的效果是大同小異的,我們可以在不同的應用場景,根據自己的喜好來選擇使用。