最近回顧了一下Vue.js的基礎知識,把認為重要的幾個點簡單的羅列了出來
vue漸進式的理解
vue可以開發很多外掛,可以把很多外掛組合到一起,漸進的增加vue的功能
update beforeUpdated
在這兩個鉤子中不要修改data資料,否則會死迴圈,
因為資料修改後update會執行,執行後又會修改資料,如此便會死迴圈
data
data為什麼要是一個函式而不是一個屬性?
因為要保證每一個例項都有一個屬於自己的作用域
v-model
注意的問題
1、v-model是個語法糖(它是由v-bind和v-on結合體,原理是利用這兩個實現)
2、v-model在自定義元件上的使用(文件)
props驗證
1、告訴使用你元件的開發人員該傳什麼型別的引數
2、三種驗證方式
修飾符
.sync
在子元件中可修改父元件傳遞的值(雖然一般不允許)
ref 和 refs
refs相當於一個鉤子,能勾到定義了ref的元件,可以用實現父元件拿到子元件的資料並進行修改,
但一般不這麼做,因為這麼做破壞了單向資料流,
我們應該進行父子元件傳參,拿到引數後進行儲存在data中在進行修改
混入mixin
- 儘量避免全域性混入,
開發外掛
流程及規則
1、vue.use()使用外掛
2、開發外掛
MyPlugin.install = function (Vue, options) {
// 1. 新增全域性方法或屬性
Vue.myGlobalMethod = function () {
// 邏輯...
}
// 2. 新增全域性資源
Vue.directive(`my-directive`, {
bind (el, binding, vnode, oldVnode) {
// 邏輯...
}
...
})
// 3. 注入元件
Vue.mixin({
created: function () {
// 邏輯...
}
...
})
// 4. 新增例項方法
Vue.prototype.$myMethod = function (methodOptions) {
// 邏輯...
}
}
生產環境的部署
前後端不分離釋出(nginx中間伺服器)
TypeScript
vue 2.0寫ts很艱難,vue3.0將會改善,並直接引入類的概念
Vue Router
$route 和 $router
$route儲存的路由的資訊
$router上掛在是路由的方法
虛擬DOM
逐層比較要改變後的DOM
比較後在記憶體中更改
更改後再次逐層比較
服務端渲染 ssr框架
vue在伺服器端的渲染(Node.js舉例)
1、裝載服務端渲染依賴包 yarn add vue-server-renderer
2、裝載vue的包 yarn add vue
3、引入vue並例項化vue(不用掛在el,因為實在後端)
4、引入vue-server-renderer並建立例項
5、....