1. 程式人生 > >【基礎】-----Vue.js的瞭解

【基礎】-----Vue.js的瞭解

1.官網:cn.vuejs.org
    Stript標籤引入要在head裡面

2.掛載點,模板,例項之間關係
    <div id="root">   </div>   -- >掛載點,掛載點之內的內容,是模板
    <script>
     new Vue({
           el:"#root",
           template:'<h1>hello</h1>',    模板可以放在例項裡
           data:{
          msg:"world"

          }
       })
    </script>

3.Vue例項中的資料,事件和方法
      <h1>{{number}}<h1/>   插值表示式
      <h1 v-text="contect"><h1/>
      <div v-html="contect">   </div>二者差別在於,v-text能轉義,將標籤以字串方式展現

繫結事件:  <div  v-on:click=“handleClick”>   </div>
                     handleClick定義在Vue例項的methods裡
                    

事件繫結簡寫:v-on:   可替換成  @

4.Vue中的屬性繫結和雙向資料繫結


   <div v-bind:title="title"></div>   title變數指的是例項裡的data中title的值
    v-bind:   可簡寫為   :
    雙向繫結:<input   v-model="contect"/>  input 內容改變,例項中的contect內容也跟著改變

5.Vue中的計算屬性和偵聽器

   

 compute:一個屬性由其他屬性計算而來。其他屬性沒改變,該屬性用的是快取值

偵聽器:
<div>{{count}}</div>
data:{
    count:0
}
watch:{
   firstName:function(){
           this.count++           只要firstName的值發生變化,count+1
    }
}

6.v-if,v-show,v-for指令
v-if   當他對應的資料項的值是false時,會直接將該標籤清除,
v-show   當他對應的資料項的值為false時,將該標籤增加display:none 屬性
隱藏顯示頻繁時用v-show效能更好

v-for:
<ul>
        <li  v-for="item of list"  :key="item">{{item}}</li>   使用key提升渲染效率,但要求key值都不同,若item值相同,

                                                                                           可以用index做key值  v-for="(item ,index)of list"
</ul>
data{list:[1,2,3]}

7.元件的拆分及全域性元件,區域性元件


全域性元件↑


區域性元件↑

元件的拆分↑
props屬性:意為該元件接收從外部傳過來的名為content的屬性

8.元件與例項的關係

   每一個vue的元件就是一個vue例項,每一個元件也可以寫method等屬性

 



當小元件被點選時,觸發了handelClick方法 ,該方法向外觸發一個事件,事件名為delete,事件對應的值為index;由於父元件在建立子元件時,有一個監聽事件,當監聽到delete方法被觸發時,就會執行handelDelete方法,該方法定義在父元件的模板裡,為父元件的方法


將list中對應的index下標的值刪掉。一旦list發生變化,todo-item會將對應的該元件從列表刪掉

總結一下大概的邏輯過程:
(1):父元件通過prop向子元件傳值 子元件獲得父元件傳來的內容和索引。
(2):子元件通過$emit向父元件丟擲觸發事件名稱(delete)和觸發事件的list索引值。
(3):父元件通過監聽對應事件名稱(@delete)觸發函式handleDelete。函式通過子元件丟擲的索引值對應刪除list

vue-cli相關用法:
1.template中只能有有個標籤包裹其他所有標籤
2.data  不再是一個物件而是一個函式,返回值為對應資料