(一)vue基礎知識總彙

Vue是一套用於構建用戶界面的漸進式框架。Vue被設計爲自底向上逐層應用。
Vue的核心庫只關注視圖層,不僅易上手,還便於與第三方庫或既有項目整合。

Vue實例
一個Vue應用由一個通過new Vue創建 的根Vue實例,以及可選的嵌套、可複用的組件樹組成。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <!-- 1. 引入vue文件 -->
  <script src="./vue2.js"></script>
</head>
<body>
  <!-- 如果超過vue實例的管轄範圍,這個{{}}作用就會失效 -->
  <div>{{msg}}</div>
  <div id="app">
    <!-- 5. 展示數據:通過插值表達式{{}} ,作用是專門用來渲染文本-->
    <h1>{{msg}}</h1>
  </div>
  <script>
    // 2. 創建vue實例,作用:他會監管我們的html代碼
    var vm = new Vue({
      // 3. 通過一個el屬性來指定vue實例的監管範圍,後面跟一個id
      el: '#app',
      // 4. 用data屬性將要展示的變量存起來,data後面跟一個對象
      data: {
        msg: 'hello world'
      }
    })
  </script>
</body>
</html>

實例聲明週期鉤子

每個Vue實例在被創建時都要經過一系列的初始化過程。在這個過程中也會運行一些叫做生命週期鉤子的函數,

給用戶在不同階段添加自己代碼的機會。

new Vue({
    data:{
        a:1
    },
    created:function(){
        //this指向vm實例
        console.log('a is:'+this.a)
    }
})

也有其他的鉤子,在實例生命週期的不同階段被調用,如:mountedupdated、和destroyed

生命週期鉤子的this上下文指向調用它的Vue實例。不要在選項屬性或回調上使用箭頭函數。

生命週期

vue生命週期最常用的鉤子函數包括:

1、在beforeCreatecreated鉤子函數之間的生命週期

在這個生命週期之間,進行初始化事件,進行數據的觀測,可以看到created的時候數據已經和data屬性進行綁定。

2、createdbeforeMount鉤子函數之間的生命週期

在這個生命週期,先判斷對象是否有el選項。如果有的話就繼續向下編譯,如果沒有el選項,則停止編譯,

也就意味着停止了生命週期,直到在該vue實例上調用vm.$mount(el)。

3、beforeMountmounted鉤子函數間的生命週期

給vue實例對象添加$el成員,並且替換掉掛在DOM元素。因爲在之前console中打印的結果可以看到beforeMount之前el還是undefined。

4、mounted

在mounted之前h1通過{{message}}進行佔位,因爲此時還有掛在到頁面上,還是JavaScript中的虛擬DOM形式存在的。

在mounted之後可以看到h1中的內容發生變化。

5、beforeUpdate和updated鉤子函數間的生命週期

當vue發現data中的數據發生了改變,會觸發對應組件的重新渲染,先後調用beforeUpdate和updated鉤子函數。

6、beforeDestroy和destroyed鉤子函數間的生命週期

beforeDestroy鉤子函數在實例銷燬前調用。在這一步,實例仍然完全可用。

destroyed鉤子函數在vue實例銷燬後調用。調用後,vue實例指示的所有東西都會解綁定,又有的事件監聽器會被移除,子實例也會被銷燬。

beforeCreate()——實例初始化自動調用
created()——實例創建後調用
beforeMount()——在mount之前運行,元素已經加載,但是 屬性值沒渲染
mounted()——在編譯結束時調用,加載完成
beforeUpdate()——在實例掛載後,再次更新實例時調用,屬性值未渲染
updated()——在實例掛載之後,再次更新實例並更新完DOM。結構後調用,屬性值修改後
beforeDestroy()——在開始銷燬實例時調用
destroyed()——在實例銷燬後調用
actived()——在動態組件初始化渲染的過程中調用
deactived()——在動態組件移除的過程中調用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章