Vue.js大總結 vue漸進式的理解 vue可以開發很多插件,可以把很多插件組合到一起,漸進的增加vue的功能 update beforeUpdated 在這兩個鉤子中不要修改data數據,否則會死迴圈, 因為數據修改後update會執行,執行後又會修改數據,如此便會死迴圈 data data為什 ...
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、....