Vue01

vue簡介

Vue.js 是什么 :

1. Vue 是一套用于構(gòu)建用戶界面的漸進(jìn)式框架

------------------------------------------------------------------------------------------

Vue.js 作用 :

1. Vue 核心庫 只關(guān)注視圖層 , 通過盡可能簡單的 API 實現(xiàn)響應(yīng)的數(shù)據(jù)綁定和組合的視圖組件

2. Vue 將界面拆分成一個個組件, 通過組件來構(gòu)建界面 , 用自動化 工具來生成單頁面

前端主要工作 :

主要負(fù)責(zé)于 MVC 的 V 這一層 ; 主要和 界面 打交道

為什么要學(xué)習(xí)框架 :

企業(yè)中使用框架可以 提高效率

以前的開發(fā)模式 :

原生JS -> Jquery 之類的庫 -> 前端模板引擎 -> Vue,js 之類的框架

( 能夠幫我們健身不必要的DOM操作,提高渲染效率,雙向數(shù)據(jù)綁定的概念,我們前端程序員只需要關(guān)系數(shù)據(jù)的業(yè)務(wù)邏輯,不在關(guān)心DOM是如何渲染的 )

框架和庫 區(qū)別 :

框架 : 是一套完整的解決方案 , 對項目侵入性 比較大 , 項目如果需要 更換框架 , 則需要 重新架構(gòu) 整個 項目

庫( 插件 ) : 提高一個小功能 , 對項目侵入性比較小 , 如果某個庫 無法完成 某些需求, 可以很容易 切換 到 其他的 庫實現(xiàn) 需求

補(bǔ)充 : Node 中的 MVC? 與 前端 中的 MVVM 之間的區(qū)別

MVC 是后端的分成開發(fā)的概念 :

Model( 模塊 )層 : 處理數(shù)據(jù)的CRUD( 增(Create)潮秘、查(Retrieve)需纳、改(Update)戴已、刪(Delete) )

View( 前端視圖 )層 : 前端頁面

Controller( 控制 )層 : 業(yè)務(wù)邏輯層 ( 路由也是這個層里面有部分 )

MVVM 前端視圖層( view )概念 : 主要關(guān)注于 視圖層分離

MVVM 把前端的視圖層市俊,分為了 三部分 Model, View , VM( 調(diào)度者 )ViewModel

補(bǔ)充 : 單向綁定 雙向綁定

單向綁定非常簡單,就是把Model綁定到View,當(dāng)我們用 JS代碼 更新Model( 數(shù)據(jù) )時,View就會自動更新婆殿。

Model? VM? View

有單向綁定,就有雙向綁定罩扇。如果用戶更新了View婆芦,Model的數(shù)據(jù)也自動被更新了,這種情況就是雙向綁定喂饥。

Vue 雙向綁定的原理 :

VUE實現(xiàn)雙向數(shù)據(jù)綁定的原理就是利用了 Object.defineProperty( ) 這個方法重新定義了對象獲取屬性值(get)和設(shè)置屬性值(set)的操作來實現(xiàn)的

延伸 :

在javaScript中消约,對象的屬性分為兩種類型:數(shù)據(jù)屬性和訪問器屬性。

1.數(shù)據(jù)屬性:默認(rèn) (可以動態(tài)控制屬性的增刪改查權(quán)限)

var person = {

? ? name:'張三',

? ? age:18,

? ? hobby:'足療愛好者'

}

//1.刪除權(quán)限

Object.defineProperty(person,'name',{

? ? configurable:false,//不可刪除的

} )

delete person.name;//無效

//2.遍歷權(quán)限

Object.defineProperty ( person,'hobby', {

? ? enumerable:false //不可被枚舉

} )

for( var key in person ){

? ? console.log( person[ key ] )? // hobby不可被枚舉

}

3.查詢權(quán)限

Object.defineProperty( person,'age',{

? ? value:88 // 訪問到的的數(shù)據(jù)值

} )

console.log( person.age ) // age 的數(shù)據(jù)值 固定為 88

//4.讀寫權(quán)限

Object.defineProperty( person,'name',{

? ? writable:false? //不可被枚舉

} )

person.name = '李四'; // 無效

Object.defineProperty( )

第一個參數(shù):對象

第二個參數(shù):屬性

第三個參數(shù):權(quán)限 默認(rèn)都是true

? ? configurable?: boolean? ? 可刪除的

? ? enumerable?: boolean? ? 可遍歷的

? ? value?: any? ? ? ? ? ? ? ? ? ? ? 訪問的數(shù)據(jù) 查詢

? ? writable?: boolean? ? ? ? ? 可修改的

2.訪問器屬性:

( 監(jiān)聽對象屬性的狀態(tài)员帮,可以攔截對象的行為

( 賦值與取值 ) ,MVVM,雙向綁定或粮,設(shè)計模式)

set? :? 賦值的時候會執(zhí)行這個方法

get :取值的時候會執(zhí)行這個方法

------------------------------------------------------------

1. 數(shù)據(jù)屬性和訪問器屬性不能混用,只能同時設(shè)置某一種

2. 在get與set內(nèi)部使用 this.屬性 會導(dǎo)致死循環(huán)

3. 需要綁定的 屬性 對象中對應(yīng)的屬性 前面加 '_' 下劃線

var student = {? ?

? ? _name : '張三',

? ? age : 20,

? ? hobby : '段子手'

}

-----------------------------------------------------------------------------------

1. 需要綁定的 屬性 對象中對應(yīng)的屬性 前面加 '_' 下劃線

2. 下面的 參數(shù)二 所寫的 屬性不加 '_' , 此屬性 與 對象中 '_'屬性 建立橋梁對應(yīng)

3. 有人 修改了 第二個參數(shù) 所綁定的屬性, 觸發(fā) set 方法, value 為 修改的值

-----------------------------------------------------------------------------------

Object.defineProperty( student , 'name' , {

? ? set : function( value ){

? ? ? ? console.log( '有人居然想要改我的name屬性' )

? ? ? ? this._name = value;

? ? },

? ? get : function(){

? ? ? ? return this._name;

? ? }

} )

對應(yīng)到 Vue

1. 通過 v-bind 綁定屬性 到 Object.defineProperty 第二個參數(shù)

2. new Vue 一個實例對象 , 里面有 { } 對象, data 存放數(shù)據(jù),

3. 操作數(shù)據(jù), data 里面數(shù)據(jù) 發(fā)生了改變, 就進(jìn)入到了 set 方法中, html 元素 對應(yīng)的 綁定屬性值 也改變

? ? var box = document.getElementById('box')

? ? var vm = {

? ? ? ? _backgroundColor : 'green'

? ? }

? ? Object.defineProperty( vm, 'backgroundColor',{

? ? ? ? set : function ( value ) {

? ? ? ? ? ? box.style.backgroundColor = value

? ? ? ? ? ? this._backgroundColor = value

? ? ? ? },

? ? ? ? get : function ( ) {

? ? ? ? ? return this._backgroundColor

? ? ? ? }

? ? })

? ........... ( 后面操作數(shù)據(jù)改變就 動態(tài)修改 )


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末捞高,一起剝皮案震驚了整個濱河市氯材,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌硝岗,老刑警劉巖氢哮,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異型檀,居然都是意外死亡冗尤,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來裂七,“玉大人皆看,你說我怎么就攤上這事“叮” “怎么了悬蔽?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵扯躺,是天一觀的道長捉兴。 經(jīng)常有香客問我,道長录语,這世上最難降的妖魔是什么倍啥? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮澎埠,結(jié)果婚禮上虽缕,老公的妹妹穿的比我還像新娘。我一直安慰自己蒲稳,他們只是感情好氮趋,可當(dāng)我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著江耀,像睡著了一般剩胁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祥国,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天昵观,我揣著相機(jī)與錄音,去河邊找鬼舌稀。 笑死啊犬,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的壁查。 我是一名探鬼主播觉至,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼睡腿!你這毒婦竟也來了语御?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤嫉到,失蹤者是張志新(化名)和其女友劉穎沃暗,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體何恶,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡孽锥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惜辑。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡唬涧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盛撑,到底是詐尸還是另有隱情碎节,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布抵卫,位于F島的核電站狮荔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏介粘。R本人自食惡果不足惜殖氏,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望姻采。 院中可真熱鬧雅采,春花似錦、人聲如沸慨亲。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刑棵。三九已至巴刻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間铐望,已是汗流浹背冈涧。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留正蛙,地道東北人督弓。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像乒验,于是被迫代替她去往敵國和親愚隧。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,700評論 2 354

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

  • vue理解淺談 一 理解vue的核心理念 使用vue會讓人感到身心愉悅,它同時具備angular和react的優(yōu)點...
    ambeer閱讀 24,126評論 2 18
  • 面試官: 實現(xiàn)雙向綁定Proxy比defineproperty優(yōu)劣如何? 面試官系列(4): 實現(xiàn)雙向綁定Prox...
    流動碼文閱讀 23,021評論 6 77
  • ## 框架和庫的區(qū)別?> 框架(framework):一套完整的軟件設(shè)計架構(gòu)和**解決方案**锻全。> > 庫(lib...
    Rui_bdad閱讀 2,907評論 1 4
  • 一:什么是閉包狂塘?閉包的用處? (1)閉包就是能夠讀取其他函數(shù)內(nèi)部變量的函數(shù)鳄厌。在本質(zhì)上荞胡,閉包就 是將函數(shù)內(nèi)部和函數(shù)外...
    xuguibin閱讀 9,601評論 1 52
  • 最近喜歡看《上新了,故宮》了嚎,從沒去過故宮泪漂,對于故宮的了解僅限于書本廊营,以及網(wǎng)絡(luò)上的信息...... 紫禁城,這個名詞...
    易水寒1213閱讀 240評論 0 0