課程地址:https://coding.imooc.com/class/175.html
為什么選擇Vue框架?
? ? 學習成本低
? ? 流行程度和作者對框架的維護熱度高
????文檔完善、生態(tài)圈龐大贮喧、bug修復速度塊
Sass
? ? 變量苍柏、嵌套規(guī)則贺奠、mixins东涡、導入
Vue的雙向綁定是如何實現(xiàn)的哩牍?
? ? 基本原理:數據驅動頁面棚潦,頁面映射數據
? ? 核心API:Object.defineProperty()
? ? 設計模式:觀察者模式
? ? ? ? 監(jiān)聽者Observer監(jiān)聽Data變化,Data變化會觸發(fā)Object.defineProperty()的set函數膝昆,通知觀察者列表Dep丸边,Wather訂閱Dep,Dep接到通知后回調Watcher執(zhí)行update函數荚孵,更新View
有沒有使用過CSS Module妹窖,基本原理是什么,Vue該如何做收叶?
? ? CSS Module的工作原理就是把一個類名編譯成哈希字符串骄呼,然后在引用的時候直接使用這個哈希字符串字符串,進而保證相同的類名根據不同的路徑和組件名稱得到不同的值判没,保證了最終的類名隔離蜓萄。
? ? Vue在vue-loader中配置開啟CSS Module
cssModules: {
????localIdentName: '[path][name]---[local]---[hash:base64:5]',
? ? camelCase: true
},
? ? 在vue文件中style標簽上加module屬性
????對于父組件聲明的類名,在子組件內澄峰,CSS Module是不處理的绕德,想用必須顯示調用類名($style.類名)
開啟CSS Module之后如何使用第三方樣式庫?
? ? @import引入
Vue的安裝包有幾個版本摊阀,遇到問題如何解決?
? ??對不同構建版本的解釋
? ? 在webpack中引入vue.esm.js
resolve: {
????alias: {
? ? ? ????'vue$': 'vue/dist/vue.esm.js'
? ? }
},
為什么選擇Webpack構建工具?
? ? CSS胞此、JS模塊化管理
? ? 資源合并臣咖、壓縮,編譯漱牵、打包夺蛇,性能優(yōu)化
? ? 提升開發(fā)效率
項目是如何使用Webpack的?dev-server的原理是什么酣胀?
? ? entry? ? 配置入口
????module? ? 配置loader
????plugins? ? 配置插件
????output? ? 配置輸出
? ? resolve? ? 查詢文件
? ? devServer? ? 開啟服務
? ? devServer利用websocket刁赦,在頁面中注入JS,devServer會啟動一個服務闻镶,JS和服務之間通過websocket建立通訊甚脉,服務監(jiān)聽改變后push更新,客戶端接收更新做瀏覽器的刷新
有沒有實現(xiàn)一個webpack的loader铆农?
????loader本質就是接收字符串(或者buffer)牺氨,再返回處理完的字符串(或者buffer)的過程。webpack會將加載的資源作為參數傳入loader方法墩剖,交于loader處理猴凹,再返回。
如何做任務管理岭皂?
? ? npm scripts郊霎、gulp
你的項目有什么特色?
? ? 自適應方案爷绘、模塊化設計(CSS书劝、JS)
解決過什么問題,怎么解決的揉阎?用的什么技術方案庄撮?
? ? 自適應。
????自適應在移動端要適配很多種機型毙籽,通常是使用media+rem的方式去做洞斯,缺點是media是有優(yōu)先級的,多個media有優(yōu)先級覆蓋不好會導致失效坑赡,設備太多測試很難烙如,不具備通用性。
? ? 在vue中配置px2rem-loader毅否,在開發(fā)時只使用px亚铁,px2rem把px轉成rem,再動態(tài)的計算font-size螟加。
你對自己的項目是否滿意徘溢,有改進空間嗎吞琐?
? ? gzip壓縮,vue異步加載
如果這個項目現(xiàn)在讓你重新設計然爆,你會怎么思考站粟?
前后端分離是如何做的?
? ? 后端專注于服務曾雕、數據
? ? 前端專注于業(yè)務奴烙,視圖
前端的路由是什么原理?
? ? history? ? pushstate剖张、onpopstate
????hash? ? location.hash切诀、hashchange
Vue相關用法
? ? 組件、模板搔弄、插槽等