Vue學(xué)習(xí)筆記(一)

# Vue的學(xué)習(xí)路線規(guī)劃

1. Vue基礎(chǔ)

2. Vue-cli

3. Vue-router

4. Vuex

5. Element-ui

6. Vue3

本文是作者跟著尚硅谷的張?zhí)煊砝蠋煹囊曨l學(xué)習(xí)時做的筆記

# Vue是什么

**官網(wǎng)給出的定義如下:**

> 一套用于`構(gòu)建用戶界面`的漸進式`JavaScript`框架

- **什么是`構(gòu)建用戶界面`长赞?**

就是把數(shù)據(jù)展示在頁面的合適位置

- **什么是`漸進式`蝇狼?**

*Vue可以自底向上逐層的應(yīng)用。*

也就是說肝谭,假如我們要做一個簡單的應(yīng)用,那么我們只需要一個輕量的核心庫就可以赖晶;

如果我們要做一個復(fù)雜的應(yīng)用俄占,那么我們可以引入各式各樣的Vue插件來增強功能。

# Vue的特點

1. 采用組件化模式葡缰,提高代碼復(fù)用率亏掀,且讓代碼更好維護

2. 聲明式編碼,讓編碼人員無需直接操作DOM泛释,提高開發(fā)效率

# 搭建Vue開發(fā)環(huán)境

## Vue的安裝方式

1. **直接用`<script>`引入**

2. **NPM**

3. **命令行工具 (CLI)**

這里我們使用標簽引入的方式來使用Vue

*首先滤愕,我們先創(chuàng)建一個文件夾,用vscode打開怜校,接著我們在這個文件夾里再新建一個文件夾放入Vue官網(wǎng)給的兩個js文件间影,不帶min的為開發(fā)版本,帶min的為生產(chǎn)版本,并新建一個文件夾新建自己的html文件*

*官方文檔地址放這了茄茁,點擊開發(fā)版本和生產(chǎn)版本即可下載兩個js文件* https://cn.vuejs.org/v2/guide/installation.html

![image.png](/upload/2021/10/image-18074c776aa246579a893d9a3ea7be25.png)

然后在script標簽中引入其中一個即可魂贬,這里引入的是開發(fā)版本的

```html

<script type="text/javascript" src="../js/vue.js"></script>

```

## chrome的Vue插件安裝

國外的同學(xué)可以在chrome網(wǎng)上應(yīng)用店可以搜到

國內(nèi)的同學(xué)要在網(wǎng)上找到下面這個文件把它拖到chrome的擴展程序頁面里就可以安裝成功

![image.png](/upload/2021/10/image-5b57919a467143868744ff98365b1cb6.png)

接著在chrome的右上角把Vue開發(fā)工具固定在地址欄右邊

![image.png](/upload/2021/10/image-08fc12f69a5148558c1b977fa89e35a5.png)

# Hello小案例

1. 先準備一個div容器巩割,設(shè)置id值

2. 在script標簽中創(chuàng)建Vue實例,并用el指定Vue實例為哪個容器服務(wù)

3. data中放入要使用的數(shù)據(jù)

4. div中用{{數(shù)據(jù)的key值}}取得數(shù)據(jù)并顯示

```html

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <title>Document</title>

? ? <script type="text/javascript" src="../js/vue.js"></script>

</head>

<body>

? ? //準備好容器

? ? <div id="root">

? ? ? ? <h1>{{name}}</h1>

? ? </div>

? ? <script>

? ? ? ? new Vue({

? ? ? ? ? ? //el用于指定當前Vue實例為哪個容器服務(wù)付燥,值通常為css選擇器字符串

? ? ? ? ? ? el:'#root',

? ? ? ? ? ? //data中用于存儲數(shù)據(jù)宣谈,數(shù)據(jù)供el所指定的容器去使用

? ? //data中的數(shù)據(jù)變化時,頁面中有用到數(shù)據(jù)的地方也跟著變化

? ? ? ? ? ? data:{

? ? ? ? ? ? ? ? name:'ZhengBin'

? ? ? ? ? ? }

? ? ? ? })

? ? </script>

</body>

</html>

```

在頁面中顯示為

![image.png](/upload/2021/10/image-480b99e823774988ad251c3ddbee8e18.png)

## 注意事項

- 真實開發(fā)中只有一個Vue實例键科,并且會配合著組件一起使用

- {{js表達式}}中的js表達式可以自動讀取到data中的所有數(shù)據(jù)

- 一旦data中的數(shù)據(jù)發(fā)生改變闻丑,那么頁面中有用到該數(shù)據(jù)的地方也會自動改變

*區(qū)分:js表達式和js語句*

*1.表達式:一個表達式會產(chǎn)生一個值,可以放在任何一個需要值的地方勋颖,例如`a`嗦嗡、`a+b`、`demo(1)`牙言、`a === b ? x:y`

2.語句:例如if語句,for語句等*

# Vue模板語法

Vue模板語法分為兩大類

1. 插值語法:

功能:用于解析標簽體內(nèi)容(標簽體內(nèi)容是在兩個標簽之間的內(nèi)容)

寫法:{{js表達式}}酸钦,可以直接讀取到data中的所有屬性

2. 指令語法

功能:用于解析標簽(包括:標簽屬性、標簽體內(nèi)容咱枉、綁定事件......)

舉例:v-bind:href="xxx" 或簡寫為 :href="xxx",xxx同樣要寫成js表達式卑硫,且可以讀取到data中的所有屬性

備注:Vue中有很多的指令,且形式都是v-???蚕断,此處我們只是拿v-bind舉個例子

關(guān)于指令語法欢伏,我們舉個例子

例如,我們要在頁面上弄個超鏈接亿乳,鏈接地址數(shù)據(jù)放在Vue實例的data中

```html

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <title>Document</title>

? ? <script type="text/javascript" src="../js/vue.js"></script>

</head>

<body>

? ? <!-- 準備好容器 -->

? ? <div id="root">

? ? ? ? <!-- 此處也可以簡寫為:href,但只有v-bind指令可以這樣做 -->

? ? ? ? <a v-bind:href="url">跳轉(zhuǎn)到百度</a>

? ? </div>

? ? <script>

? ? ? ? new Vue({

? ? ? ? ? ? //el用于指定當前Vue實例為哪個容器服務(wù)硝拧,值通常為css選擇器字符串

? ? ? ? ? ? el:'#root',

? ? ? ? ? ? //data中用于存儲數(shù)據(jù),數(shù)據(jù)供el所指定的容器去使用

? ? ? ? ? ? data:{

? ? ? ? ? ? ? ? url:'http://www.baidu.com'

? ? ? ? ? ? }

? ? ? ? })

? ? </script>

</body>

</html>

```

說白了就是標簽里的屬性可以取到data里的值葛假,不過要在屬性前加`v-bind`或者`:`(可以簡寫為`:`的只有v-bind指令障陶,其它的不行),另外指令語法也可以用在標簽體內(nèi)容聊训、綁定事件

**額外補充一點**:

`取data中的屬性時抱究,可以有層級關(guān)系的取值`

例如,我們要取兩個名字带斑,一個是學(xué)生的名字鼓寺,一個是學(xué)校的名字

```html

? ? <div id="root">

? ? ? ? <h1>{{name}}</h1>

? ? ? ? <h1>{{name1}}</h1>

? ? </div>

```

如果這樣寫的話,那么我們在data中是不是得寫一個name屬性,一個name1屬性?

我們可以這樣做勋磕,把它改成

```html

? ? <div id="root">

? ? ? ? <h1>{{stu.name}}</h1>

? ? ? ? <h1>{{school.name}}</h1>

? ? </div>

```

同時在data中這樣寫

```html

? ? <script>

? ? ? ? new Vue({

? ? ? ? ? ? //el用于指定當前Vue實例為哪個容器服務(wù)妈候,值通常為css選擇器字符串

? ? ? ? ? ? el:'#root',

? ? ? ? ? ? //data中用于存儲數(shù)據(jù),數(shù)據(jù)供el所指定的容器去使用

? ? ? ? ? ? data:{

? ? ? ? ? ? ? ? stu:{

? ? ? ? ? ? ? ? ? ? name:'ZhengBin'

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? school:{

? ? ? ? ? ? ? ? ? ? name:'xxx'

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? })

? ? </script>

```

最終在頁面中顯示為

![image.png](/upload/2021/10/image-74df2beeb1ae48ff9440b7f0b17aae72.png)

# 單向數(shù)據(jù)綁定與雙向綁定

單向數(shù)據(jù)綁定用的是`v-bind`指令

雙向數(shù)據(jù)綁定用的是`v-model`指令

我們用`v-model`舉個例子來告訴大家什么是雙向綁定

```html

<!DOCTYPE html>

<html lang="en">

<head>

? ? <meta charset="UTF-8">

? ? <title>Document</title>

? ? <script type="text/javascript" src="../js/vue.js"></script>

</head>

<body>

? ? <div id="root">

? ? ? ? <!-- v-model:value此處可以簡寫為v-model -->

? ? ? ? <input type="text" v-model:value="age"/>

? ? </div>

? ? <script>

? ? ? ? new Vue({

? ? ? ? ? ? el:'#root',

? ? ? ? ? ? data:{

? ? ? ? ? ? ? ? age:23

? ? ? ? ? ? }

? ? ? ? })

? ? </script>

</body>

</html>

```

**注意輸入框和data里的數(shù)據(jù)是一樣的挂滓,當我們把輸入框里的文字改變時苦银,data里的數(shù)據(jù)也跟著一起改變**

![無標題.png](/upload/2021/10/%E6%97%A0%E6%A0%87%E9%A2%98-8cd6d19c7f64455c9c57e9800de93158.png)

![無標題1.png](/upload/2021/10/%E6%97%A0%E6%A0%87%E9%A2%981-3f8ae0798ab142fbb2c38a5b7915256a.png)

**而`v-bind`的單向數(shù)據(jù)綁定指的是只有data里的數(shù)據(jù)變化時,我們在頁面中的數(shù)據(jù)跟著改變,當頁面中的值改變時墓毒,data里的值不跟著改變**

**說白了單向綁定就是數(shù)據(jù)只能由data流向頁面吓揪,而雙向綁定是兩邊互流**

- 雙向綁定一般都應(yīng)有在表單類元素上(如input、select)

- `v-model:value`可以簡寫為`v-model`所计,因為`v-model`默認收集的是value值

# el與data的兩種寫法

1. el的兩種寫法

(1)new Vue()的時候配置el屬性

(2)先創(chuàng)建Vue實例柠辞,隨后通過vm.$mount('#root')指定el的值

```html

? ? <script>

? ? ? ? const v=new Vue({

? ? ? ? ? ? // el:'#root'? 第一種寫法

? ? ? ? ? ? data:{

? ? ? ? ? ? ? ? age:23

? ? ? ? ? ? }

? ? ? ? })

? ? ? ? v.$mount('#root')? //第二種寫法

? ? </script>

```

2. data的兩種寫法

(1)對象式

(2)函數(shù)式

如何選擇?目前哪種寫法都行主胧,以后學(xué)習(xí)到組件時叭首,data必須使用函數(shù)式,否則會報錯

一個重要的原則:由Vue管理的函數(shù)踪栋,使用到this指的是Vue實例焙格。并且Vue管理的函數(shù),一定不要寫成箭頭函數(shù)夷都,一旦寫了眷唉,this指的就不是Vue實例了

```html

? ? <script>

? ? ? ? const v=new Vue({

? ? ? ? ? ? el:'#root',

? ? ? ? ? ? //對象式

? ? ? ? ? ? // data:{

? ? ? ? ? ? //? ? age:23

? ? ? ? ? ? // }

? ? ? ? ? ? //函數(shù)式

? ? ? ? ? ? data(){

? ? ? ? ? ? ? ? return{

? ? age:23

}

? ? ? ? ? ? }

? ? ? ? })

? ? </script>

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市囤官,隨后出現(xiàn)的幾起案子冬阳,更是在濱河造成了極大的恐慌,老刑警劉巖党饮,帶你破解...
    沈念sama閱讀 212,332評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肝陪,死亡現(xiàn)場離奇詭異,居然都是意外死亡刑顺,警方通過查閱死者的電腦和手機氯窍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蹲堂,“玉大人狼讨,你說我怎么就攤上這事∑饩海” “怎么了熊楼?”我有些...
    開封第一講書人閱讀 157,812評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長能犯。 經(jīng)常有香客問我,道長犬耻,這世上最難降的妖魔是什么踩晶? 我笑而不...
    開封第一講書人閱讀 56,607評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮枕磁,結(jié)果婚禮上渡蜻,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好茸苇,可當我...
    茶點故事閱讀 65,728評論 6 386
  • 文/花漫 我一把揭開白布排苍。 她就那樣靜靜地躺著,像睡著了一般学密。 火紅的嫁衣襯著肌膚如雪淘衙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,919評論 1 290
  • 那天腻暮,我揣著相機與錄音彤守,去河邊找鬼。 笑死哭靖,一個胖子當著我的面吹牛具垫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播试幽,決...
    沈念sama閱讀 39,071評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼筝蚕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了铺坞?” 一聲冷哼從身側(cè)響起起宽,我...
    開封第一講書人閱讀 37,802評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎康震,沒想到半個月后燎含,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,256評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡腿短,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,576評論 2 327
  • 正文 我和宋清朗相戀三年屏箍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橘忱。...
    茶點故事閱讀 38,712評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡赴魁,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钝诚,到底是詐尸還是另有隱情颖御,我是刑警寧澤,帶...
    沈念sama閱讀 34,389評論 4 332
  • 正文 年R本政府宣布凝颇,位于F島的核電站潘拱,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拧略。R本人自食惡果不足惜芦岂,卻給世界環(huán)境...
    茶點故事閱讀 40,032評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望垫蛆。 院中可真熱鬧禽最,春花似錦腺怯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至懦趋,卻和暖如春晾虑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背愕够。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評論 1 266
  • 我被黑心中介騙來泰國打工走贪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惑芭。 一個月前我還...
    沈念sama閱讀 46,473評論 2 360
  • 正文 我出身青樓坠狡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親遂跟。 傳聞我的和親對象是個殘疾皇子逃沿,可洞房花燭夜當晚...
    茶點故事閱讀 43,606評論 2 350

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