前端小白學習Vue.js心得分享

一撮竿,計算屬性Computed

我們的計算屬性吮便,和我們的方法很相似,但是我們的計算屬性可以把復雜的東西更簡單化幢踏,接下來就開始我們的計算屬性髓需,還是一樣我們先在index.html里面把框架結(jié)構(gòu)做好

<body>
<div id="vue-app">
       <button v-on:click="a++">Add to A</button>
       <button v-on:click="b++">Add to B</button>
       <p>A - {{a}}</p>
       <p>B - {}</p>
   </div>
</body>

我們上面有兩個<button>房蝉,當我們點擊的時候僚匆,我們的<p>標簽就會有對應的顯示,我們現(xiàn)在來看看搭幻,計算屬性和方法有什么不同咧擂,首先,我們在p標簽下面在加兩個p標簽<p>age + A = {{agetoA}}</p>檀蹋,<p>age + A = {{agetoB}}</p>松申,我們有了agetoAagetoB這兩個方法,那我們就要實現(xiàn)這兩個方法俯逾,我們在app.js里面寫我們的方法

<body>
<div id="vue-app">
       <button v-on:click="a++">Add to A</button>
       <button v-on:click="b++">Add to B</button>
       <p>A - {{a}}</p>
       <p>B - {贸桶}</p>
       <p>age + A = {{agetoA()}}</p>
       <p>age + B = {{agetoB()}}</p>
   </div>
</body>
new Vue({
    el:"#vue-app",
    data:{
           a:0,
           b:0,
           age:20
    },
     methods:{
          addtoA:function(){
               return this.a + this.age;
           },
           addtoB:function(){
             return this.b + this.age;
           }
     }
})

我們要的結(jié)果是,當我們點擊Add to A的時候我們的A會變纱昧,我們的age + A也會變刨啸,我們現(xiàn)在寫的是方法,無論我們點A也好還是B也好识脆,他們都會執(zhí)行设联,我們?yōu)榱蓑炞C我們的說法,我們在控制臺里面看看console.log("add to A")灼捂,console.log("add to B")當我們進入到控制臺我們會看到在我們沒點的時候就已經(jīng)顯示了add to Aadd to B离例,當我們刷新之后再點擊button我們會看到add to Aadd to B又出現(xiàn)了,這樣的話是非常消耗性能的悉稠,但是我們computed是不一樣的

new Vue({
    el:"#vue-app",
    data:{
           a:0,
           b:0,
           age:20
    },
     methods:{
          addtoA:function(){
               console.log("add to A");
               return this.a + this.age;
           },
           addtoB:function(){
             console.log("add to B");
             return this.b + this.age;
           }
     }
})

我們computed和方法在用法上很相似的宫蛆,我們的可以直接把方法拷貝一份到computed里面,但是在我們保存去頁面刷新看的時候他會給我們報錯的,如果我們想要調(diào)動我們的計算屬性耀盗,就不能像方法那樣加上括號了想虎,那我們就在html里面把括號刪掉就行了

new Vue({
    el:"#vue-app",
    data:{
           a:0,
           b:0,
           age:20
    },
     methods:{
          
     },
     computed:{
          addtoA:function(){
               console.log("add to A");
               return this.a + this.age;
           },
           addtoB:function(){
             console.log("add to B");
             return this.b + this.age;
           }
}
})
<body>
<div id="vue-app">
       <button v-on:click="a++">Add to A</button>
       <button v-on:click="b++">Add to B</button>
       <p>A - {{a}}</p>
       <p>B - {}</p>
       <p>age + A = {{agetoA}}</p>
       <p>age + B = {{agetoB}}</p>
   </div>
</body>

我們在回到頁面刷新叛拷,當我們點擊Add to A控制臺就會給我們顯示add to A舌厨,這就比我們的方法更優(yōu)化的的一個地方,在什么時候我們使用這個計算屬性忿薇,在我們變化幅度比較大裙椭,比如搜索的時候,那我們會使用計算屬性署浩。

二揉燃,動態(tài)綁定CSS樣式

之前我們也知道了屬性綁定,所以都有所了解筋栋,我們需要用到的就是v-bind:class=" "我們給v-bind:class=" "
一個對象炊汤,以動態(tài)的切換class,我們初始一下我們的htmlapp.jsstyle.css代碼給個結(jié)構(gòu)框架和樣式

<body>
<div id="vue-app">
       <h1> 示例 1 </h1>
           <div></div>
       <h2> 示例 2 </h2>
            <div></div>
   </div>
</body>
new Vue ({
     el:"vue-app",
     data:{
         changecolor:false,
         changelength:false
     },
     methods:{

     },
     computed:{

}
 });
span{
    background: red;
    display: inline-block;
    padding: 10px;
    color: #fff;
    margin: 10px 0;
}
.color span {
    background: green;
}

.length span:after{
      content: "length";
      margin-left: 10px;
}

結(jié)構(gòu)寫好了我們就要實現(xiàn)動態(tài)綁定弊攘,我們要想動態(tài)綁定婿崭,我們還是使用我們的v-bind,屬性就是class,屬性里面要有值肴颊,而我們的值是一個對象氓栈,在這個對象當中,最終只有兩個值婿着,要么是true授瘦,要么是false,接下來我們就來看看怎么寫這個動態(tài)樣式竟宋,首先提完,我們在h1下面的div我們綁定一個class,要想有一個動態(tài)樣式我們就綁定一個css里面的color丘侠,那css后面的值我們就寫app.js里面的changecolor徒欣,v-bind:class="{color:changecolor}",這個時候我們回到頁面在控制臺里面我們會看到class這個時候是空的,默認狀態(tài)下我們的div是紅色的蜗字,那我們就想打肝,當我們的class不為空,我們在div里面加一個<span>標簽挪捕,內(nèi)容就寫“南極小丑”粗梭,在添加一個鼠標點擊事件當我們點擊的時候給他賦值,賦個取反的值v-on:click="changecolor=!changecolor"级零,這個值就是app.js里面的changecolor**断医,這個時候當我們點擊“南極小丑”的時候我們會發(fā)現(xiàn)背景從紅色變成了綠色。

<body>
<div id="vue-app">
       <h1> 示例 1 </h1>
          <div v-on:click="changecolor=!changecolor"
               v-bind:class="{color:changecolor}">
                 <span>“南極小丑”</span>
          </div>
       <h2> 示例 2 </h2>
            <div></div>
   </div>
</body>

這是我們的第一個示例,我們再說說第二個示例鉴嗤,當我們點擊div的時候(第二個div)我們可以更改我們一個元素的樣式斩启,我們用我們上一篇計算屬性來寫,我們先給計算屬性取名叫 computer這個名字就相當于我們上面的對象醉锅,我們現(xiàn)在要做的就是把我們data里面的兩個屬性都反過來浇垦,我們既然調(diào)用的是計算屬性,那我們就要實現(xiàn)這個計算屬性

new Vue ({
     el:"vue-app",
     data:{
         changecolor:false,
         changelength:false
     },
     methods:{

     },
     computed:{
        computer:function(){
                return{
                  color=this.changecolor,
} 
 }
}
 });
<body>
<div id="vue-app">
       <h1> 示例 1 </h1>
          <!--<div v-on:click="changecolor=!changecolor"
               v-bind:class="{color:changecolor}">
                 <span>“南極小丑”</span>
          </div>-->
       <h2> 示例 2 </h2>
            <div v-bind:class="computer">
                 <span>"南極小丑"</span>
            </div>
   </div>
</body>

這樣其實是和我們上面一樣的荣挨,這個時候我們就差一個點擊事件,我們給他加一個點擊事件v-on:click="changecolor=!changecolor",當我們點擊的時候他就變成了非changecolor,我們還可以添加多個事件changelength讓他的長度發(fā)生變化,

<body>
<div id="vue-app">
       <h1> 示例 1 </h1>
          <!--<div v-on:click="changecolor=!changecolor"
               v-bind:class="{color:changecolor}">
                 <span>“南極小丑”</span>
          </div>-->
       <h2> 示例 2 </h2>
            <button v-on:click="changecolor=!changecolor">change color</button>
            <button v-on:click="changelength=!changelength">change length</button>
            <div v-bind:class="computer">
                 <span>"南極小丑"</span>
            </div>
   </div>
</body>
new Vue ({
     el:"vue-app",
     data:{
         changecolor:false,
         changelength:false
     },
     methods:{

     },
     computed:{
        computer:function(){
                return{
                  color=this.changecolor,
                  length=this.changelength
} 
 }
}
 });

這樣當我們點擊其中一個按鈕他就會相應的改變CSS樣式

這是我和大家一起分享我自己所學到的一些Vue.js的基礎(chǔ)知識朴摊,希望看到這篇文章的各位前輩多多關(guān)照默垄,小生有哪些錯誤的地方希望能夠指出來,也希望其他和我一樣的小白能夠有所幫助甚纲。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末口锭,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子介杆,更是在濱河造成了極大的恐慌鹃操,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件春哨,死亡現(xiàn)場離奇詭異荆隘,居然都是意外死亡,警方通過查閱死者的電腦和手機赴背,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門椰拒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人凰荚,你說我怎么就攤上這事燃观。” “怎么了便瑟?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵缆毁,是天一觀的道長。 經(jīng)常有香客問我到涂,道長脊框,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任践啄,我火速辦了婚禮缚陷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘往核。我一直安慰自己箫爷,他們只是感情好,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著虎锚,像睡著了一般硫痰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上窜护,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天效斑,我揣著相機與錄音,去河邊找鬼柱徙。 笑死缓屠,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的护侮。 我是一名探鬼主播敌完,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼羊初!你這毒婦竟也來了滨溉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤长赞,失蹤者是張志新(化名)和其女友劉穎晦攒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體得哆,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡脯颜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了贩据。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片伐脖。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖乐设,靈堂內(nèi)的尸體忽然破棺而出讼庇,到底是詐尸還是另有隱情,我是刑警寧澤近尚,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布蠕啄,位于F島的核電站,受9級特大地震影響戈锻,放射性物質(zhì)發(fā)生泄漏歼跟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一格遭、第九天 我趴在偏房一處隱蔽的房頂上張望哈街。 院中可真熱鬧,春花似錦拒迅、人聲如沸骚秦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽作箍。三九已至硬梁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胞得,已是汗流浹背荧止。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留阶剑,地道東北人跃巡。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像牧愁,于是被迫代替她去往敵國和親素邪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

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