一、什麼是mvvm?
mvvm是model-view-viewmodel的縮寫。mvvm是一種設計思想。model 層代表資料模型,也可以在model中定義資料修改和操作的業務邏輯;view 代表ui 元件,它負責將資料模型轉化成ui 展現出來,viewmodel 是乙個同步view 和 model的物件。
在mvvm架構下,view 和 model 之間並沒有直接的聯絡,而是通過viewmodel進行互動,model 和 viewmodel 之間的互動是雙向的, 因此view 資料的變化會同步到model中,而model 資料的變化也會立即反應到view 上。
viewmodel 通過雙向資料繫結把 view 層和 model 層連線了起來,而view 和 model 之間的同步工作完全是自動的,無需人為干涉,因此開發者只需關注業務邏輯,不需要手動操作dom, 不需要關注資料狀態的同步問題,複雜的資料狀態維護完全由 mvvm 來統一管理。
二、mvvm和mvc區別?它和其它框架(jquery)的區別是什麼?哪些場景適合?
mvc和mvvm其實區別並不大。都是一種設計思想。主要就是mvc中controller演變成mvvm中的viewmodel。mvvm主要解決了mvc中大量的dom 操作使頁面渲染效能降低,載入速度變慢,影響使用者體驗。
區別:vue資料驅動,通過資料來顯示檢視層而不是節點操作。
場景:資料操作比較多的場景,更加便捷
三、vue的優點是什麼?
四、 元件之間的傳值?
父元件通過標籤上面定義傳值
子元件通過props方法接受資料
子元件通過$emit方法傳遞引數
五、路由之間跳轉
宣告式(標籤跳轉) 程式設計式( js跳轉)
六、vue.cli中怎樣使用自定義的元件?有遇到過哪些問題嗎?
例如有indexpage命名,使用的時候則index-page
七、vue如何實現按需載入配合webpack設定
webpack中提供了require.ensure()來實現按需載入。以前引入路由是通過import 這樣的方式引入,改為const定義的方式進行引入。
不進行頁面按需載入引入方式:import home from '../../common/home.vue'
進行頁面按需載入的引入方式:const home = r => require.ensure( , () => r (require('../../common/home.vue')))
八、vuex面試相關
(1)vuex是什麼?怎麼使用?哪種功能場景使用它?
(2)vuex有哪幾種屬性?
有五種,分別是 state、 getter、mutation 、action、 module
a、vuex就是乙個倉庫,倉庫裡面放了很多物件。其中state就是資料來源存放地,對應於一般vue物件裡面的data
b、state裡面存放的資料是響應式的,vue元件從store中讀取資料,若是store中的資料發生改變,依賴這個資料的元件也會發生更新
c、它通過mapstate把全域性的 state 和 getters 對映到當前元件的 computed 計算屬性中
a、getters 可以對state進行計算操作,它就是store的計算屬性
b、 雖然在元件內也可以做計算屬性,但是getters 可以在多元件之間復用
c、 如果乙個狀態只在乙個元件內使用,是可以不用getters
action 類似於 mutation,不同在於:action 提交的是 mutation,而不是直接變更狀態;action 可以包含任意非同步操作。
(3)不用vuex會帶來什麼問題?
九、 v-show和v-if指令的共同點和不同點
十、 如何讓css只在當前元件中起作用
將當前元件的修改為
十一、的作用是什麼?
包裹動態元件時,會快取不活動的元件例項,主要用於保留元件狀態或避免重新渲染。
十二、vue中引入元件的步驟?
1)採用es6的import ... from ...語法或commonjs的require()方法引入元件
2)對元件進行註冊,**如下
// 註冊vue.component('my-component', )
3)使用元件
十三、指令v-el的作用是什麼?
提供乙個在頁面上已存在的 dom 元素作為 vue 例項的掛載目標.可以是 css 選擇器,也可以是乙個 htmlelement 例項
十四、在vue中使用外掛程式的步驟
十五、請列舉出3個vue中常用的生命週期鉤子函式
十六、active-class是哪個元件的屬性?
vue-router模組的router-link元件。
十七、怎麼定義vue-router的動態路由以及如何獲取傳過來的動態引數?
在router目錄下的index.js檔案中,對path屬性加上/:id。
使用router物件的params.id。
十八、vue-router有哪幾種導航鉤子?
三種,一種是全域性導航鉤子:router.beforeeach(to,from,next),作用:跳轉前進行判斷攔截。
第二種:元件內的鉤子;
第三種:單獨路由獨享元件
十九、生命週期相關面試題
總共分為8個階段建立前/後,載入前/後,更新前/後,銷毀前/後。
(1)、什麼是vue生命週期
答: vue 例項從建立到銷毀的過程,就是生命週期。也就是從開始建立、初始化資料、編譯模板、掛載dom→渲染、更新→渲染、解除安裝等一系列過程,我們稱這是 vue 的生命週期。
(2)、vue生命週期的作用是什麼
答:它的生命週期中有多個事件鉤子,讓我們在控制整個vue例項的過程時更容易形成好的邏輯。
(3)、vue生命週期總共有幾個階段
答:可以總共分為8個階段:建立前/後, 載入前/後,更新前/後,銷毀前/銷毀後
(4)、第一次頁面載入會觸發哪幾個鉤子
答:第一次頁面載入時會觸發 beforecreate, created, beforemount, mounted 這幾個鉤子
(5)、dom 渲染在 哪個週期中就已經完成
答:dom 渲染在 mounted 中就已經完成了。
(6)、簡單描述每個週期具體適合哪些場景
答:生命週期鉤子的一些使用方法:
二十、說出至少4種vue當中的指令和它的用法?
v-if:判斷是否隱藏;v-for:資料迴圈;v-bind:class:繫結乙個屬性;v-model:實現雙向繫結
二十一、vue-loader是什麼?使用它的用途有哪些?
解析.vue檔案的乙個載入器。
用途:js可以寫es6、style樣式可以scss或less、template可以加jade等
二十二、scss是什麼?在vue.cli中的安裝使用步驟是?有哪幾大特性?
答:css的預編譯。
使用步驟:
第一步:先裝css-loader、node-loader、sass-loader等載入器模組
第二步:在build目錄找到webpack.base.config.js,在那個extends屬性中加乙個拓展.scss
第三步:在同乙個檔案,配置乙個module屬性
第四步:然後在元件的style標籤加上lang屬性 ,例如:lang=」scss」
特性:二十
三、為什麼使用key?
當有相同標籤名的元素切換時,需要通過 key 特性設定唯一的值來標記以讓 vue 區分它們,否則 vue 為了效率只會替換相同標籤內部的內容。
二十四、為什麼避免 v-if 和 v-for 用在一起
當 vue 處理指令時,v-for 比 v-if 具有更高的優先順序,通過v-if 移動到容器元素,不會再重複遍歷列表中的每個值。取而代之的是,我們只檢查它一次,且不會在 v-if 為否的時候運算 v-for。
二十五、vnode是什麼?虛擬 dom是什麼?
vue在頁面上渲染的節點,及其子節點稱為「虛擬節點 (virtual node)」,簡寫為「vnode」。「虛擬 dom」是由 vue 元件樹建立起來的整個 樹的稱呼。
軟體測試基礎筆記8
適合使用自動化的情況 版本穩定,專案周期長,指令碼可復用 不適合使用自動化測試的情況 1 定製型專案 一次性的 2 專案週期很短的專案 3 設計業務規則複雜的物件 4 對於美觀 聲音 易用性的測試 5 很少執行的測試 6 測試軟體不穩定 7 設計物理互動的軟體 冒煙測試 冒煙測試是軟體開發過程中一種...
Python學習筆記8 語法基礎
s i love hanxuexue print s i love hanxuexue 如果想表示出let s go來 1.可以使用巢狀引號,即外層使用雙引號 2.使用轉義字元 s let s go print s ss let s go print ss sss c user print sss ...
rust筆記8 collections基礎
具體細節在 中,注意引用的技巧,一般使用get 獲取元素,這樣如果越過邊界,返回的是none。fn main for i in v i let mut v1 vec 1,2,3,4,5 for i in mut v1 for i in v1 i 通過列舉繫結的形式,可以讓乙個vec儲存多個型別的值,...