一. vue的優點
1. 輕量級框架:只關注視圖層,是一個構建數據的試圖集合,大小只有十幾kb;
2. 雙向數據綁定;
3. 組件化: 保留了react的優點,實現了html的封裝和重用,構建單數據應用方面有優勢;
4. 試圖/模型/結構分離:使數據更改更為簡單;
5. 虛擬DOM: dom的操作是非常耗費性能的,不再使用原生的dom操作節點,極大的解放dom
操作,但是具體操作的還是dom,不過是換了另一種方式;
6. 運行速度更快: 相比較react而言,都是操作虛擬dom,就性能而言,vue存在很大優勢;
7. 簡單易學,國人開發,中文文檔,容易理解和學習
二. vue父組件向子組件如何傳數據?
1. 父組件通過屬性的方式給子組件傳值
在data里定義變量,在methods里的方法里獲取數據,將數據給到data里的變量,再v-bind
的指令將父組件的data里拿到的數據綁定到子組件上
2. 子組件使用props接受父組件傳遞的屬性
子組件props中接受的屬性參數只需要給其定義好數據類型,然后直接在模板中使用即可!
三. 子組件向父組件如何傳數據?
1. 子組件通過this.$emit()的自定義事件方式將值傳遞給父組件
this.$emit('change', params) ----- 事件名 ,參數
2. 在父組件中注冊該事件,並綁定父組件的方法接收數據
在父組件上綁定change的方法,方法接收參數
四. v-show 和 v-if 的共同點和不同點
相同點:
v-if與v-show都可以動態控制dom元素顯示隱藏
不同點:
1. v-if 是動態的向dom樹添加或者刪除dom元素,而v-show是通過dom元素的display樣式
來控制顯隱;
2. v-if是惰性的,只有在條件第一次變為了真時,才開始局部編譯,編譯被緩存后,然后再
切換的時候進行局部卸載,而v-show是無論首次條件是否是真,都被編譯緩存,而且保存dom元素;
3. v-if有更高的切換消耗,v-show有更高的初始渲染消耗;
4. v-if適合運營條件不大可能改變, v-show適合頻繁切換;
五. 如何讓css只在當前組件中起作用, scoped的原理和作用
在style上加scoped屬性
用途: 防止全局同名css污染
原理: 在標簽上加v-data-something屬性,再在選擇器時加上對應的[v-data-something],即
css帶屬性選擇器,以此完成類似作用域的選擇方式
六. 如何獲取dom
1. 使用ref屬性
給相應的元素添加ref="name",然后通過this.refs.name 或者 this.refs['name']獲取
2. 通過js原生的加id的方式
直接給相應的元素加id,然后再通過document.getElemnetById('id')獲取
七. vue-loader是什么,使用它的用途?
作用:解析和轉換.vue文件,提取出其中的邏輯代碼script,樣式代碼style,以及html模板
template,在分別把他們交給對應的loader去處理;
用途:js可以寫es6, styley樣式可以寫sass、less, template可以加在jade等
css-loader: 加載由vue-loader提取出來的css代碼
八. 你知道vue中key的原理嗎?
1. key的作用主要是為了提交高效的更新虛擬dom,其原理是vue在patch(補丁)的過程中通過key
可以精准的判斷兩個節點是否是同一個,從而頻繁的更新不同元素,是整個patch的過程更加高效
減少dom操作,提高性能;
2. vue中使用相同的標簽名的元素過渡的時候需要使用key進行區分,否則vue之后更新其內部屬性
而不會觸發過渡效果;
九. v-model的作用
1. v-model是vue的雙向綁定指令,能將頁面上控件輸入的值同步更新到相關綁定的data屬性,
也會在更新data綁定屬性的時候,更新頁面上控件的值;
2. v-model主要提供了兩個功能,view層輸入值影響data的屬性,data屬性值發生改變會更新
view層的數據變化;
3. v-model其實是使用v-bind和input事件監聽值的變化;
其核心就是,一方面modal層通過defineProperty來劫持每個屬性,一旦監聽到變化通過相
關的頁面元素更新。另一方面通過編譯模板文件,為控件的v-model綁定input事件,從而頁面
輸入能實時更新相關data屬性值。
十. axios的安裝及使用, axios 的特點
安裝:
1. npm install axios 或者 bower install axios 或者 直接在index.js中加入:
< script src = "