課程地址:https://coding.imooc.com/class/175.html
為什么選擇Vue框架?
? ? 學(xué)習(xí)成本低
? ? 流行程度和作者對框架的維護(hù)熱度高
????文檔完善、生態(tài)圈龐大、bug修復(fù)速度塊
Sass
? ? 變量、嵌套規(guī)則、mixins、導(dǎo)入
Vue的雙向綁定是如何實現(xiàn)的?
? ? 基本原理:數(shù)據(jù)驅(qū)動頁面,頁面映射數(shù)據(jù)
? ? 核心API:Object.defineProperty()
? ? 設(shè)計模式:觀察者模式
? ? ? ? 監(jiān)聽者Observer監(jiān)聽Data變化,Data變化會觸發(fā)Object.defineProperty()的set函數(shù),通知觀察者列表Dep,Wather訂閱Dep,Dep接到通知后回調(diào)Watcher執(zhí)行update函數(shù),更新View

有沒有使用過CSS Module,基本原理是什么,Vue該如何做?
? ? CSS Module的工作原理就是把一個類名編譯成哈希字符串,然后在引用的時候直接使用這個哈希字符串字符串,進(jìn)而保證相同的類名根據(jù)不同的路徑和組件名稱得到不同的值,保證了最終的類名隔離。
? ? Vue在vue-loader中配置開啟CSS Module
cssModules: {
????localIdentName: '[path][name]---[local]---[hash:base64:5]',
? ? camelCase: true
},
? ? 在vue文件中style標(biāo)簽上加module屬性
????對于父組件聲明的類名,在子組件內(nèi),CSS Module是不處理的,想用必須顯示調(diào)用類名($style.類名)
開啟CSS Module之后如何使用第三方樣式庫?
? ? @import引入
Vue的安裝包有幾個版本,遇到問題如何解決?
? ??對不同構(gòu)建版本的解釋
? ? 在webpack中引入vue.esm.js
resolve: {
????alias: {
? ? ? ????'vue$': 'vue/dist/vue.esm.js'
? ? }
},
為什么選擇Webpack構(gòu)建工具?
? ? CSS、JS模塊化管理
? ? 資源合并、壓縮,編譯、打包,性能優(yōu)化
? ? 提升開發(fā)效率
項目是如何使用Webpack的?dev-server的原理是什么?
? ? entry? ? 配置入口
????module? ? 配置loader
????plugins? ? 配置插件
????output? ? 配置輸出
? ? resolve? ? 查詢文件
? ? devServer? ? 開啟服務(wù)
? ? devServer利用websocket,在頁面中注入JS,devServer會啟動一個服務(wù),JS和服務(wù)之間通過websocket建立通訊,服務(wù)監(jiān)聽改變后push更新,客戶端接收更新做瀏覽器的刷新
有沒有實現(xiàn)一個webpack的loader?
????loader本質(zhì)就是接收字符串(或者buffer),再返回處理完的字符串(或者buffer)的過程。webpack會將加載的資源作為參數(shù)傳入loader方法,交于loader處理,再返回。
如何做任務(wù)管理?
? ? npm scripts、gulp
你的項目有什么特色?
? ? 自適應(yīng)方案、模塊化設(shè)計(CSS、JS)
解決過什么問題,怎么解決的?用的什么技術(shù)方案?
? ? 自適應(yīng)。
????自適應(yīng)在移動端要適配很多種機型,通常是使用media+rem的方式去做,缺點是media是有優(yōu)先級的,多個media有優(yōu)先級覆蓋不好會導(dǎo)致失效,設(shè)備太多測試很難,不具備通用性。
? ? 在vue中配置px2rem-loader,在開發(fā)時只使用px,px2rem把px轉(zhuǎn)成rem,再動態(tài)的計算font-size。
你對自己的項目是否滿意,有改進(jìn)空間嗎?
? ? gzip壓縮,vue異步加載
如果這個項目現(xiàn)在讓你重新設(shè)計,你會怎么思考?
前后端分離是如何做的?
? ? 后端專注于服務(wù)、數(shù)據(jù)
? ? 前端專注于業(yè)務(wù),視圖
前端的路由是什么原理?
? ? history? ? pushstate、onpopstate
????hash? ? location.hash、hashchange
Vue相關(guān)用法
? ? 組件、模板、插槽等