## jQuery和vue的區別
* 數據和視圖的分離 解耦 (開放封閉原則)
比如我們公司項目里面的 支付方式功能,一個支付金額的input、支付方式的下拉框和一個增加按鈕,增加按鈕用來在下方增加一個相同的input、下拉框和刪除按鈕。當使用jQuery實現時,需要監聽增加按鈕的點擊事件,在事件中使用js拼接dom和數據追加到指定頁面位置方式完成,數據和視圖都會在js中操作。使用vue的話只需要在增加按鈕的點擊事件中給數組追加一條數據即可,頁面上的v-for會自動完成,追加時只操作數據,不用處理視圖。
* 以數據驅動視圖 只關心數據變化,DOM操作被封裝
接上面的例子,jQuery是操作數據和dom使得視圖改變,而vue的方式只是對數據進行處理,視圖便會根據數據的結果進行相應改變
## mvvm
mvvm是 Model、 View、 ViewModel,Model就是js對象,View就是DOM,ViewModel這里是vue,ViewModel用來連接View和Model。View通過dom事件經過ViewModel對Model里的數據進行操作,Model通過數據綁定經過ViewModel對View進行頁面顯示處理。比如v-show 和一個帶click的添加按鈕,當點擊View視圖里面的click事件時,View視圖通過ViewModel里的方法改變Model數據中的變量,當變量修改,Model數據通過ViewModel將變量的改變同步到View中,控制v-show的顯示和隱藏
## vue三要素
### 響應式:vue如何監聽到data的每個屬性變化?
vue通過Object.defineProperty方法給數據添加get和set方法進行監聽
### 模板引擎:vue的模板如何被解析,指令如何處理?
### 渲染:vue的模板如何被渲染成html?以及渲染過程?
- 筆記內容來源
- 你不知道的JavaScript上
- vue
- 環境搭建
- node和npm安裝配置
- 安裝vue-cli并初始化vue項目
- 安裝配置elementUI
- vuex安裝配置
- axios安裝配置
- main.js
- vue基礎入門
- vue-router介紹
- vuex
- vue 原理學習源碼學習
- js正則處理v-bind和語法
- 雙向綁定
- 虛擬dom
- mvvm和render函數
- vue工作項目筆記
- elementUI 表格分頁多選記憶功能
- elementUI表格展開一行
- keepAlive
- vue整合ckeditor5
- this.$router.push 內打開新窗口
- java修改上傳圖片的權限
- 兼容ie11
- 生成二維碼
- base64圖片下載(兼容IE10)
- vue新手引導程序intro.js
- vue插件 devtools
- vue刷新當前頁面
- vue 錨點導航
- axios
- axios與springmvc
- vue-cli 3搭建vue
- git
- git常用命令
- 正則表達式
- 實例demo
- 1
- 新手引導頁
- 純css3從左顯示下劃線動畫導航菜單
- 純css3從中間顯示下劃線動畫導航菜單
- css顯示密碼
- 倒計時時鐘
- 星星評分
- 按鈕懸停效果
- 步驟條
- css動畫按鈕
- input標題獲得焦點上移
- css圖片放大
- css鏡像導航欄
- js
- 通信
- for in 和 for of
- 前端安全問題
- Promise
- 掘金冴羽學習筆記
- 模擬call
- 模擬bind
- 閉包
- 1 作用域
- 2 執行上下文棧
- 3 變量對象
- 4 作用域鏈
- 5 this
- 面向對象
- 基礎知識點
- 渲染機制
- 其他
- 判斷是否為數組
- http
- css
- 基礎知識
- css陰影