vue學(xué)習(xí)記錄第三天

悄咪咪的說講課的老師說話聲音好難聽啊

復(fù)習(xí)

  • v-model(單選時只有一個數(shù),多選的時候是數(shù)組毫目,提供一個value)
  • 修飾符 .number .lazy
  • 按鍵修飾符 .enter .ctrl .keyCode
  • v-cloak
  • axios
    1. create(){}鉤子函數(shù)复颈,在數(shù)據(jù)初始化后調(diào)用
    2. axios.get().then
    3. promise
  • filter()過濾器
  • computed:{}計算屬性,不是方法,方法沒有緩存,computed會根據(jù)依賴的屬性進(jìn)行緩存惨撇,必須是響應(yīng)式變化,像get中return date.now()并不是響應(yīng)式變化
    1. get()府寒,引入時調(diào)用魁衙,返回什么值,賦予什么屬性值
    2. set()株搔,賦值時調(diào)用
  • 事件
    1. stopPropgation 阻止冒泡剖淀,冒泡事件的意思就是一個按鈕綁定一個click事件,click事件會依次在父級元素中觸發(fā)纤房,stopProgation()組織目標(biāo)元素的事件冒泡到父級元素纵隔。
    2. cancelBabble=true和stopProgation效果相同
    3. preventDefault,returnValue=false帆卓,阻止元素的默認(rèn)行為
    4. xxx.addEventListener('click',fn)
  • jQuery once flag&&a()
  • e.srcElement&&e.target 判斷事件源綁定事件,捕獲當(dāng)前事件作用的對象
    -v-if以及v-show
  1. v-else必須和v-if連用巨朦,中間不能有其他標(biāo)簽

事件修飾符

阻止事件傳播

冒泡和捕獲都會被阻止
@click.stop=""

事件捕獲

事件捕獲是從上到下米丘,指不太具體的節(jié)點(diǎn)剑令,比如window先接收到事件,最具體的節(jié)點(diǎn)最后接收到事件拄查,在JS中將addEventListener的第二個參數(shù)改為true就會由捕獲的方式獲得最終的節(jié)點(diǎn)
vue中實現(xiàn)在父級加一個
@click.capture=""

  <body>
    <div id="app">
      <div @click.capture="parent">parent
        <div @click="child">child
          <div @click="grandson">grandson
          </div>
        </div>
      </div>

      </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
      let vm=new Vue({
        el:"#app",
        methods:{
          parent(){
            alert("parent")
          },
          child(){
            alert("child")
          },
          grandson(){
            alert("grandson")
          }
        },
        data:{

        }
      })
      </script>
  </body>

對于這段程序的執(zhí)行結(jié)果應(yīng)該是
alert(parent)
alert(grandson)
alert(child)
這是因為吁津,點(diǎn)擊grandson,parent開始捕獲堕扶,但是child沒有捕獲碍脏,所以直接獲得grandson,然后開始冒泡

阻止默認(rèn)行為

@click.pervent=""

事件只綁定一次

@click.once=""

判斷事件源綁定

@click.self=""

Vue構(gòu)造函數(shù)

希望所有的實例都能使用過濾器稍算,使用全局過濾器
要放在頁面的頂部典尾,不可以new完后再定義

Vue.filter('my',(data)=>{return data+'111'}

watch

computed不支持異步
好的是時候重溫異步了
每次異步一定要拿出來說的東西就是setTimeout(),看以下的程序

    for(var i=0; i<3; i++){
        setTimeout(function(){
            i+=i;
            console.log(i);
        },1000)
    }
    var i = 1;
    console.log(i);

輸出的結(jié)果是 1 2 4 8
原因是整個程序的運(yùn)行順序是,for先執(zhí)行糊探,setTimeout也進(jìn)入隊列三次钾埂,i到達(dá)3,然后執(zhí)行var i=1,i被賦予值1科平,console.log(1)褥紫,然后時間到了,三次setTimeout被執(zhí)行

watch,computed以及methods的區(qū)別

  1. computed VS methods 計算屬性是基于依賴進(jìn)行緩存瞪慧,依賴發(fā)生變化髓考,才會重新計算,但是調(diào)用方法是在每次觸發(fā)渲染時都會再次執(zhí)行
  2. computed VS watch
    當(dāng)有一些數(shù)據(jù)需要隨著其他數(shù)據(jù)的變動而變動弃酌,使用computed
    當(dāng)需要異步或者開銷較大的操作的時候使用watch
    watch可以監(jiān)控值的變化氨菇,在data中定義屬性進(jìn)行監(jiān)控儡炼,watch中的屬性名要和監(jiān)控的屬性名相同
watch:{
a(newVal,oldVal):{}
}

只有值變化才會變化,假如兩次輸入的值相同查蓉,并不會觸發(fā)

watch另一種調(diào)用方法

vm.$watch('a',function(){})

動態(tài)綁定樣式

v-bind

動態(tài)綁定“屬性”

動態(tài)綁定class和style

第一種方法 對象

首先動態(tài)綁定的方式是:class, :class和class綁定的屬性不沖突
綁定:{className:isActive}
多個類用逗號隔開

  <body>
    <div id="app">
      <!--{className:isActive}-->
      <div id="a" class="x" :class="{z:flag,y:!flag}">大白熊
        </div>
      </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
      let vm=new Vue({
        el:"#app",
        data:{
          flag:true
        }
      })
      </script>
  </body>

第二種數(shù)組

在data定義需要用的類射赛,:class后用數(shù)組綁定
:class="[class1,class2,'z']"
或者:class="[class1,class2,{z:flag]"

<body>
    <div id="app">
      <!--{className:isActive}-->
      <div id="a" :class="[class1,class2,'z']">大白熊
        </div>
      </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
      let vm=new Vue({
        el:"#app",
        data:{
          class1:"x",
          class2:"y",
          flag:true
        }
      })
      </script>
  </body>

template

template標(biāo)簽,是vue提供的沒有任何實際意義的標(biāo)簽奶是,可以用來包裹元素楣责,并且使用v-if,v-show并不支持

      <template v-if="false">
        <div>企鵝</div>
        <div>企鵝</div>
        <div>企鵝</div>
        <div>企鵝</div>
      </template>
      <div v-else>大白熊
        </div>

利用這個簡單弄了一個注冊登錄界面切換

<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
    <style>
      .ui{
        width:500px;
        height:20px;
        list-style: none;
        margin:0;
        padding:0;
      }
      .ui li{
        width:70px;
        height:20px;
        margin-left:10px;
        float:left;
        text-align:center;
        background-color:lightblue;
        border:1px solid black;
        border-radius:5px 5px 0 0;
      }
      .ui li:hover
      {
        cursor:pointer
      }
      .content
      {
        width:500px;
        height:300px;
        margin-top:0;
        border:1px solid black;
      }
    </style>
  </head>

  <body>
    <div id="app">
     <ul class="ui">
       <li @click="flag=true">注冊</li>
       <li @click="flag=false">登錄</li>
       </ul>
      <div class="content">
        <template v-if="flag">
          <br>
          <label>用戶名:</label>
          <input type="text" key="1">
          <br>
          <label>密碼:</label>
          <input type="text" key="2">
          <br>
          <label>確認(rèn)密碼:</label>
          <input type="text">
        </template>
        <template v-else>
          <br>
          <label>用戶名:</label>
          <input type="text" key="3">
          <br>
          <label>密碼:</label>
          <input type="text" key="4">
        </template>
        </div>
    </div>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script>
    new Vue(
    {
      el:"#app",
      data:{
        flag:true
      }
    }
    )
    </script>
  </body>
</html>

相同結(jié)構(gòu)復(fù)用

默認(rèn)情況下切換dom時相同的結(jié)構(gòu)會被復(fù)用聂沙,如果不需要復(fù)用秆麸,加上key屬性

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市及汉,隨后出現(xiàn)的幾起案子沮趣,更是在濱河造成了極大的恐慌,老刑警劉巖坷随,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件房铭,死亡現(xiàn)場離奇詭異,居然都是意外死亡温眉,警方通過查閱死者的電腦和手機(jī)缸匪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來类溢,“玉大人凌蔬,你說我怎么就攤上這事〈忱洌” “怎么了砂心?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長蛇耀。 經(jīng)常有香客問我辩诞,道長,這世上最難降的妖魔是什么纺涤? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任译暂,我火速辦了婚禮,結(jié)果婚禮上洒琢,老公的妹妹穿的比我還像新娘秧秉。我一直安慰自己,他們只是感情好衰抑,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布象迎。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪砾淌。 梳的紋絲不亂的頭發(fā)上啦撮,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機(jī)與錄音汪厨,去河邊找鬼赃春。 笑死,一個胖子當(dāng)著我的面吹牛劫乱,可吹牛的內(nèi)容都是我干的织中。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼衷戈,長吁一口氣:“原來是場噩夢啊……” “哼狭吼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起殖妇,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤刁笙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后谦趣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體疲吸,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年前鹅,在試婚紗的時候發(fā)現(xiàn)自己被綠了摘悴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡嫡纠,死狀恐怖烦租,靈堂內(nèi)的尸體忽然破棺而出延赌,到底是詐尸還是另有隱情除盏,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布挫以,位于F島的核電站者蠕,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏掐松。R本人自食惡果不足惜踱侣,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望大磺。 院中可真熱鬧抡句,春花似錦、人聲如沸杠愧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锐锣,卻和暖如春腌闯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背雕憔。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工姿骏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人斤彼。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓分瘦,卻偏偏與公主長得像,于是被迫代替她去往敵國和親琉苇。 傳聞我的和親對象是個殘疾皇子擅腰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評論 2 344

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

  • # 傳智播客vue 學(xué)習(xí)## 1. 什么是 Vue.js* Vue 開發(fā)手機(jī) APP 需要借助于 Weex* Vu...
    再見天才閱讀 3,525評論 0 6
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對于 Vue 1.0 印象不深的內(nèi)容翁潘。關(guān)于...
    云之外閱讀 5,045評論 0 29
  • vue概述 在官方文檔中趁冈,有一句話對Vue的定位說的很明確:Vue.js 的核心是一個允許采用簡潔的模板語法來聲明...
    li4065閱讀 7,191評論 0 25
  • VUE Vue :數(shù)據(jù)驅(qū)動的M V Vm框架 m :model(后臺提供數(shù)據(jù)),v :view(頁面)拜马,vM(模板...
    wudongyu閱讀 5,374評論 0 11
  • vue(中心思想:替換app元素) vue腳手架 把vue-cli 安裝到全局:npm install vue...
    萌妹撒閱讀 391評論 0 0