日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > vue >内容正文

vue

Vue.js教程学习笔记

發(fā)布時(shí)間:2025/5/22 vue 94 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue.js教程学习笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

官方視頻簡(jiǎn)易教程:https://learning.dcloud.io/

1. 安裝與部署

第一階段(初學(xué))可以通過(guò)在html文件中引入腳本來(lái)完成安裝

<script src="vue.js" type="text/javascript" charset="UTF-8"></script>

如果后期熟悉了CLI安裝器,則生成的可以不是html后綴的文件,而以vue為后綴。

2. 第一個(gè)Vue應(yīng)用

通過(guò)雙括號(hào)可以進(jìn)行變量雙向綁定。Vue()函數(shù)是Vue.js的主要函數(shù)。

var vm = new Vue();
3. 數(shù)據(jù)與方法

對(duì)于

<div id="app"></div>

可以用ID選擇器進(jìn)行選擇

var data = {a: 1,b: 1 }; var vm = new Vue({el: "#app",data: data });

需要綁定的變量,必須先定義,然后才能生效。一下這兩種寫(xiě)法的效果是一樣的

vm.$data.b = "bbbBBB"; data.a = "aaaAAA";

可以用watch來(lái)監(jiān)視變量的變化并進(jìn)行處理,但是一定只對(duì)定義watch來(lái)監(jiān)視變量的變化并進(jìn)行處理,但是一定只對(duì)定義watch來(lái)監(jiān)進(jìn)對(duì)watch之后發(fā)生的變化生效。

vm.$watch('a', function(newVal, oldVal){console.log(oldVal, ' change to ' ,newVal); }); data.a = "AAaa";

上面的兩句交換位置就不生效了。

4. 生命周期

主要生命周期如下

beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
activated
deactivated
beforeDestroy
destroyed
errorCaptured

5. 模板語(yǔ)法-插值

使用雙花括號(hào)進(jìn)行文本綁定;
使用v-html進(jìn)行HTML標(biāo)簽綁定;
使用v-bind進(jìn)行HTML標(biāo)簽屬性綁定;

<div id="app"><p>{{ rawHtml }}</p><p v-html="rawHtml"></p><div v-bind:class="my_color_class">test...</div> </div> var vm = new Vue({el: '#app',data: {rawHtml: '<span style="color:red">this should be red</span>',my_color_class: 'my_red'} }); <style type="text/css">.my_red{color:red; font-size:100px;} </style>

插值內(nèi)容也支持Javascript表達(dá)式

{{ number + 1 }} {{ ok ? 'YES' : 'NO' }} {{ message.split('').reverse().join('') }}
6. 模板語(yǔ)法-指令

指令是以“v-”開(kāi)頭的vue標(biāo)簽屬性,例如:
v-if(條件渲染)
v-bind(屬性綁定)后用冒號(hào)帶參數(shù),如上面的例子

指令后還可以使用修飾符,例如在下面的代碼中,click后面的stop修飾符用于阻止click事件向外層傳遞到click1:

<div @click="click1"><div @click.stop="click2">click here</div> </div> var vm = new Vue({el: '#app',data: { },methods:{click1: function() {console.log("this is click1");},click2: function() {console.log("this is click2");}} });
7. class / style動(dòng)態(tài)綁定

如下面的代碼所示:
class1,class2,class3是3個(gè)不同的class,其中class2和class3通過(guò)isClass2,isClass3開(kāi)關(guān)進(jìn)行控制。通過(guò)v-bind:class可以將多個(gè)class綁定到同一個(gè)div上。
:style(注意必須有冒號(hào)),可以將style動(dòng)態(tài)綁定。注意動(dòng)態(tài)綁定style的時(shí)候,要使用{ },且使用逗號(hào)進(jìn)行分隔。

<!DOCTYPE html> <html><head><meta charset="utf-8"><title></title><script src="vue.js" type="text/javascript" charset="UTF-8"></script></head><body><div id="app"><div class="class1" v-bind:class="[isClass2 ? 'class2' : '', isClass3 ? 'class3' : '']"style="width:300px; height:200px; text-align:center; line-height:200px;">test dynamic class</div><div :style="{color:color1, fontSize:font1, background: isRed ? '#FF0000' : ''}">test dynamic style</div></div><script type="text/javascript">var vm = new Vue({el: '#app',data: {isClass2 : true,isClass3 : true,color1 : "#FFFF00",font1 : "30px",isRed : true}});</script><style type="text/css">.class1{font-size:30px;}.class2{color:#00FF00}.class3{background:#0000FF}</style></body> </html>
8. 條件渲染

主要有v-if(也包括了v-else-if,v-else)和v-show。
前者是真的“條件渲染”,后者是渲染后控制“顯示或隱藏”。
相對(duì)而言,前者的切換成本高,后者的初始化成本高。

<!DOCTYPE html> <html><head><meta charset="utf-8"><title></title><script src="vue.js" type="text/javascript" charset="UTF-8"></script></head><body><div id="app"><p v-if="tag1 === 'A'">A</p><p v-else-if="tag1 === 'B'">B</p><p v-else-if="tag1 === 'C'">C</p><p v-else>Not ABC</p><p v-show="isShow">Hello</p></div><script type="text/javascript">var vm = new Vue({el: '#app',data: {tag1 : 'A',isShow : true}});</script></body> </html>
9. 列表渲染

使用v-for可以進(jìn)行列表渲染,其中循環(huán)的目標(biāo)可以是數(shù)組的不同元素,也可以是對(duì)象的不同屬性。如下面的代碼所示:

<!DOCTYPE html> <html><head><meta charset="utf-8"><title></title><script src="vue.js" type="text/javascript" charset="UTF-8"></script></head><body><div id="app"><ul><li v-for="item, index in items" :key="index">{{index}} - {{ item.msg }}</li></ul><ul><li v-for="value, key in object" :key="key">{{key}} : {{ value }}</li></ul></div><script type="text/javascript">var vm = new Vue({el: '#app',data: {items: [{msg: 'one'},{msg: 'two'},{msg: 'three'}],object: {name: 'xiaoming',age: 7}}});</script></body> </html>
10. 事件綁定

使用v-on進(jìn)行事件綁定,它可以綁定當(dāng)前元素所支持的任意一種事件。事件處理函數(shù)可以傳參,也可以使用修飾符。如下:

<div id="app"><button v-on:click="onClicked('abc', $event)">click me</button> </div><script type="text/javascript">var vm = new Vue({el: '#app',data: {name: 'vue'},methods: {onClicked : function(str, e) {alert('Hello '+this.name+', '+str);console.log(e);}}}); </script>
11. 表單輸入綁定

使用 v-model 進(jìn)行表單輸入綁定。
不同的輸入元素使用不同的 property 并拋出不同的事件:

  • text 和 textarea 元素使用 value property 和 input 事件;
  • checkbox 和 radio 使用 checked property 和 change 事件;
  • select 字段將 value 作為 prop 并將 change 作為事件。

v-model 是雙向綁定,可以通過(guò)給data中的變量設(shè)置初始值的方法,反向設(shè)定表單元素的默認(rèn)值。
詳見(jiàn):https://cn.vuejs.org/v2/guide/forms.html

12. 組建基礎(chǔ)

用Vue.component()方法聲明組件:
組件可以復(fù)用
組件的data是一個(gè)方法
組件的prop可以用來(lái)向內(nèi)傳遞數(shù)據(jù)
組件必須有一個(gè)根元素,否則后續(xù)元素?zé)o法渲染
組件可以通過(guò)$emit方法向外傳遞事件,或者拋出值
通過(guò)組件的slot可以支持在外部向組件中插入html元素
詳見(jiàn):
https://cn.vuejs.org/v2/guide/components.html
https://learning.dcloud.io/#/?vid=12

13. 相關(guān)工具的安裝
  • npm安裝
    安裝完node.js后,npm包管理工具就自動(dòng)安裝好了
  • cnpm
    這是中國(guó)版的npm,由于mirror的原因,可以更快的安裝所需的包
npm install -g cnpm
  • vue-cli 腳手架工具
cnpm install -g @vue/cli
  • webpack (JavaScript打包器)
cnpm install -g webpack

總結(jié)

以上是生活随笔為你收集整理的Vue.js教程学习笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。