> 1. Vue中常見的指令有哪些?
* v-bind
* v-on
* v-if / v-else / v-else-if
* v-show
* v-model
* v-for
* v-once (只渲染一次)
* v-text / v-html
> 2. Vue中常見的修飾符有哪些?
* .stop (阻止事件冒泡)
* .prevent (阻止默認事件)
* .self (只有當前標簽才可以觸發此事件)
* .once (這個事件只執行一次)
* .sync (可以更新props執行的父級變量)
* .number (把數據直接格式化成number類型賦予給變量)
* .lazy (當失去焦點才綁定數據)
* .trim (去除兩邊的空格)(不會去掉中間的空格)
* .capture (事件捕獲階段 ,觸發此事件).
* .passive (1. 提高移動端滾動效率(實時觸發), 2. 內置了prevent, 不要再調用了)
> 3. $nextTick()的作用?
在下次 DOM 更新循環結束之后執行延遲回調
$nextTick要放入回調函數
> 4. axios是什么? 怎么用?
Axios 是一個基于 promise 的 HTTP 庫,可以用在瀏覽器和 node.js 中
(1): npm 下載axios模塊
(2):二次封裝axios 全局網絡請求工具, 配置不同的域名請求
(3): 統一的接口管理文件, 所有的請求都在那里配置.
> 5. MVVM是什么, 說說你的理解?
它是由MVC設計模式演變過來的一套設計模式,它將視圖UI與業務邏輯分開, 使用View-Model層把View和Model綁定在了一起, 互相影響, Vue就是采用MVVM的設計模式
> 6. Vue和JQuery的區別? 使用場景?
Vue: 靠數據驅動視圖, 基本上無需獲取DOM和設置DOM.
JQuery: 獲取DOM節點, 操作節點/和數據
使用場景: 數據變化比較多的時候(Vue), DOM節點操作比較多(JQuery)
> 7. Vue生命周期圖解?

>8. vue如何監聽鍵盤事件中的按鍵?
@keyup/@keydown
后面還可以指定某一個按鍵才會觸發事件
修飾符:
* `.enter`
* `.tab`
* `.delete`(捕獲“刪除”和“退格”鍵)
* `.esc`
* `.space`
* `.up`
* `.down`
* `.left`
* `.right`
Vue2.1.0 +
* `.ctrl`
* `.alt`
* `.shift`
* `.meta`
> 9.vue-router有哪幾種導航守衛?
router.beforeEach (路由改變之前觸發)
router.beforeResolve(全局的和組件內的守衛都執行完畢, 最后再執行這個)
router.afterEach (守衛之后, 路由改變完成觸發)
組件內守衛: (當前組件身上的守衛)
* `beforeRouteEnter` (當前組件將要被路由加載前的一刻觸發, 不能獲取this, 因為組件DOM還沒被加載)
* `beforeRouteUpdate`(2.2 新增) (該組件被復用時調用)
* `beforeRouteLeave` (導航路由離開該組件時觸發)
> 10. vue-router實現路由懶加載( 動態加載路由 )
懶加載的使用場景:Vue打 包會變得非常大,影響頁面加載速度。當路由被訪問的時候才加載對應組件,這樣就更加高效了。
懶加載步驟:
(1): 使用異步組件技術: (例: component: resolve => require(\['@/components/home'\],resolve)
(2): () => import('@/views/nested/menu1/menu1-2/menu1-2-1')
動態路由方案:
(1), 合并路由的配置項, (注意, 要使用異步加載)
(2): router.addRoutes(), 一般應用場景在不同用戶給與不同的路由列表
> 11.Vuex在Vue-cli中的應用?
Vuex: 全局狀態管理, 它是Vue官方推薦使用, 內部有主要state/mutations/actions/getters/modules, Store只能有一個
使用步驟: (1) 下載 (2) 引入并且配置 (3) main.js中注入全局store
使用場景: 當跨組件傳值/跨頁面傳值/需要保存在全局的邏輯變量
> 12. Vue之間的傳值方式?
頁面-頁面 (跳轉傳參, 路由的路徑, path配合query, name配合parmas)
組件-組件 (父->子用props, 子->父 自定義事件, 跨組件 EventBus/Vuex)
還可以使用refs來直接操作子組件
> 13.Vue的雙向數據綁定的原理?
使用數據觀察+劫持+訂閱觀察者模式, 配合Object.defineProperty來監聽每個屬性的變化, 同時更新DOM標簽
> 14. 請說出vue.cli項目中src目錄每個文件夾和文件的用法?
* api ---- 接口管理封裝
* assets --- 打包的靜態資源
* components --- 復用的組件封裝
* icons ---- 字體圖標文件
* router ---- 路由配置
* store ---- Vuex的配置
* style ---- 全局樣式
* utils --- 工具包
* pages/views --- 頁面組件
* directives --- 全局指令
* filters ---- 全局過濾器
* vertical --- 全局驗證類
main.js --- 項目配置入口
App.Vue --- 根組件
> 15. 為什么虛擬DOM會提高性能?
* 虛擬DOM其實就是一個JavaScript對象, 原理: createDocumentFragment()
* 在數據更新時, 只更新部分DOM結構
* 減少實際DOM的操作次數
>16. 如何封裝一個組件, 談談你的思路?
- web前端
- CSS問題
- 布局
- 雙飛翼布局_flex方式
- 雙飛翼布局_margin方式
- 圣杯布局_flex方式
- 圣杯布局_margin方式
- 子元素居中問題
- 彈性布局
- 概念_
- 標準模式與混雜模式
- 各種FC
- line-height
- vertical-align
- CSS3新特性
- 效果
- div添加箭頭
- CSS繪制三角形
- JavaScript
- 兼容
- 事件相關
- 原理
- Ajax原理
- 繼承原理
- 原型鏈繼承
- 組合繼承
- 寄生組合繼承
- 數據綁定
- 1單向數據綁定m到c到v
- 2偽雙向數據綁定
- 3雙向數據綁定
- socket.io
- 運行時
- this指向
- 0.1+0.2問題
- 對象/數組-深拷貝&淺拷貝
- 事件循環
- typeof
- instanceof
- 概念
- 閉包
- 回調函數
- Promise
- 原生對象
- Attribute和property區別
- 防抖函數
- 節流函數
- 語言類型
- Vue
- Vue優缺點
- 仿Vue源碼
- 1數據綁定_Observe
- 2數據綁定_訂閱者&觀察者定義
- 3數據綁定_Vue類實現
- 4數據綁定_Vue訪問data更改
- 5DOM編譯_Compile_雙大括號模板講解
- 6DOM編譯_v-model講解
- 7DOM編譯_v-on:事件綁定講解
- 項目總結
- 使用Svg圖標
- vueCli環境_真機測試
- vueCli集成環信SDK
- 父子組件雙向綁定
- React
- React優缺點
- 我的組件庫
- Vue的組件庫
- 環信_聊天組件
- 面試題
- HTML_分類
- CSS_分類
- JavaScript_分類
- VueJS_分類
- ReactJS_分類
- AngularJS_分類
- 瀏覽器端
- 筆試題
- CSS
- 特殊布局
- JavaScript_
- 經典_宏任務_微任務
- 瀏覽器問題
- CORS
- web服務器
- Apache
- 開啟跨域
- Nginx
- 常用命令
- 正向代理
- 反向代理
- 負載均衡
- mac安裝Nginx
- 配置80端口
- 算法
- 冒泡排序
- 選擇排序
- 合并對象_排序
- 楊輝三角
- 紅黑樹
- 計算機基礎
- 網絡相關
- OSI七層模型
- http協議
- http工作原理
- https協議
- GET和POST區別
- hosts文件
- php相關
- session機制
- Linux
- 阿里云服務器
- linux使用Mysql
- 安裝mysql
- 導入.sql文件
- 遠程連接mysql
- linux使用xampp
- 安裝Xampp
- 配置web訪問
- 域名綁定服務器
- linux搭建git服務器_apache下
- 代碼管理
- 什么是git
- 命令行_使用git
- .gitignore文件講解
- 軟件
- VSCode的安裝
- 理財
- 基金
- 攝影