国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

vue常見問題匯總

這篇具有很好參考價(jià)值的文章主要介紹了vue常見問題匯總。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

來源:https://www.fly63.com/

Q1:安裝超時(shí)(install timeout)

方案有這么些:
cnpm : 國(guó)內(nèi)對(duì)npm的鏡像版本/*cnpm website: https://npm.taobao.org/*/npm install -g cnpm --registry=https://registry.npm.taobao.org
// cnpm 的大多命令跟 npm 的是一致的,比如安裝,卸載這些yarn 和 npm 改源大法
//使用 nrm 模塊 : www.npmjs.com/package/nrmnpm config : npm config set registry https://registry.npm.taobao.orgyarn config : yarn config set registry https://registry.npm.taobao.org

Q2:安裝一些需要編譯的包:提示沒有安裝python、build失敗等?

因?yàn)橐恍?npm 的包安裝需要編譯的環(huán)境,mac 和 linux 都還好,大多都齊全 window 用戶依賴 visual studio 的一些庫(kù)和python 2+, windows的小伙伴都裝上: windows-build-tools python 2.x

Q3:can’t not find ‘xxModule’ - 找不到某些依賴或者模塊

這種情況一般報(bào)錯(cuò)信息可以看到是哪個(gè)包拋出的信息.,一般卸載這個(gè)模塊,安裝重新安裝下即可.

Q4:data functions should return an object

這個(gè)問題是?vue?實(shí)例內(nèi),單組件的data必須返回一個(gè)對(duì)象;如下

export default {  name: 'page-router-view',      data () {      return {        tabs: [          {            title: '財(cái)務(wù)信息',            url: '/userinfo'          },          {            title: '帳號(hào)信息',            url: '/userinfo/base'          }        ]      }    }}

為什么要 return 一個(gè)數(shù)據(jù)對(duì)象呢? 官方解釋如下: data 必須聲明為返回一個(gè)初始數(shù)據(jù)對(duì)象的函數(shù),因?yàn)榻M件可能被用來創(chuàng)建多個(gè)實(shí)例。如果 data 仍然是一個(gè)純粹的對(duì)象,則所有的實(shí)例將共享引用同一個(gè)數(shù)據(jù)對(duì)象!簡(jiǎn)言之,組件復(fù)用下,不會(huì)造成數(shù)據(jù)同時(shí)指向一處,造出牽一發(fā)而動(dòng)全身的破問題...

Q5:我給組件內(nèi)的原生控件添加事件,怎么不生效了!!!

<!--比如用了第三方框架,或者一些封裝的內(nèi)置組件; 然后想綁定事件--><!--// 錯(cuò)誤例子1--><el-input placeholder="請(qǐng)輸入特定消費(fèi)金額 " @mouseover="test()"></el-input><!--// 錯(cuò)誤例子2--><router-link :to="item.menuUrl" @click="toggleName=''">  <i :class="['fzicon',item.menuIcon]"></i>  <span>{{item.menuName}}</span></router-link><!--上面的兩個(gè)例子都沒法觸發(fā)事件!!!--><!--究其原因,少了一個(gè)修飾符 .native--><router-link :to="item.menuUrl" @click.native="toggleName=''">  <i :class="['fzicon',item.menuIcon]"></i>  <span>{{item.menuName}}</span></router-link><!--明明官方文檔有的,一堆人不愿意去看,,Fuck--><!--https://cn.vuejs.org/v2/guide/components.html#給組件綁定原生事件-->

Q6:我用了 axios , 為什么 IE 瀏覽器不識(shí)別(IE9+)

那是因?yàn)?IE 整個(gè)家族都不支持 promise, 解決方案:npm install es6-promise// 在 main.js 引入即可// ES6的polyfillrequire("es6-promise").polyfill();

Q7:我在函數(shù)內(nèi)用了this.xxx=,為什么拋出Cannot set property ‘xxx’ of undefined;

這又是this的套路了..this是和當(dāng)前運(yùn)行的上下文綁定的...?

一般你在axios或者其他 promise , 或者setInterval 這些默認(rèn)都是指向最外層的全局鉤子.?

簡(jiǎn)單點(diǎn)說:"最外層的上下文就是 window,vue內(nèi)則是 Vue 對(duì)象而不是實(shí)例!";?

解決方案:?

暫存法: 函數(shù)內(nèi)先緩存 this , let that = this;(let是 es6, es5用?var)?
箭頭函數(shù): 會(huì)強(qiáng)行關(guān)聯(lián)當(dāng)前運(yùn)行區(qū)域?yàn)?this 的上下文;?

Q8:我看一些Vue教程有這么些寫法,是什么意思@click.prevent,v-demo.a.b;

就拿這兩個(gè)例子來說吧.?

@click.prevent : 事件+修飾符 , 作用就是點(diǎn)擊但又阻止默認(rèn)行為。

v-demo.a.b: 自定義指令+修飾符. 具體看你什么指令了,修飾符的作用大多是給事件增加一些確切的拓展功能,比如阻止事件冒泡,阻止默認(rèn)行為,訪問到原生控件,結(jié)合鍵盤快捷鍵等等 。

可以自定義修飾符么?也是可以的??梢酝ㄟ^全局 config.keyCodes 對(duì)象自定義鍵值修飾符別名:

Q9:為什么我的引入的小圖片渲染出來卻是 data:image/png;base64xxxxxxxx

這個(gè)是?webpack?里面的對(duì)應(yīng)插件處理的,對(duì)于小于多少 K 以下的圖片(規(guī)定的格式)直接轉(zhuǎn)為 base64格式渲染;?

具體配置在webpack.base.conf.js里面的rules里面的 url-loader,這樣做的好處:在網(wǎng)速不好的時(shí)候先于內(nèi)容加載和減少http的請(qǐng)求次數(shù)來減少網(wǎng)站服務(wù)器的負(fù)擔(dān)。

Q10:Component template shold contain exactly one root element.If you are useing v-if on multiple elements , xxxxx

大體就是說,單組件渲染 DOM 區(qū)域必須要有一個(gè)根元素,不能出現(xiàn)同級(jí)元素. 可以用v-if和v-else-if指令來控制其他元素達(dá)到并存的狀態(tài)。

換個(gè)直白的解釋,就是有一個(gè)唯一的父類,包裹者; 比如一個(gè)?div(父包含塊) 內(nèi)部多少個(gè)同級(jí)或者嵌套都行,但是最外層元素不能出現(xiàn)同級(jí)元素!

Q11:跨域問題怎么破!比如No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

這種問題老生常談了,我就不細(xì)說了..大體說一下;?

1: CORS , 前后端都要對(duì)應(yīng)去配置,IE10+?
2: nginx 反向代理,一勞永逸 <-- 線上環(huán)境可以用這個(gè)

線下開發(fā)模式,比如你用了vue-cli, 里面的 webpack 有引入了proxyTable這么個(gè)玩意, 也可以做接口反向代理。

// 在 config 目錄下的index.jsproxyTable: {  "/bp-api": {    target: "http://new.d.st.cn",    changeOrigin: true,    // pathRewrite: {    //   "^/bp-api": "/"    // }  }}
// target : 就是 api 的代理的實(shí)際路徑// changeOrigin: 就是是變?cè)?必須是...// pathRewrite : 就是路徑重定向,一看就知道

當(dāng)然還有依舊堅(jiān)挺的jsonp大法!不過局限性比較多,比較適合一些特殊的信息獲取!

Q12:我需要遍歷的數(shù)組值更新了,值也賦值了,為什么視圖不更新!

那是因?yàn)橛芯窒扌园?官方文檔也說的很清楚,只有一些魔改的之后的方法提供跟原生一樣的使用姿勢(shì)(卻又可以觸發(fā)視圖更新);

一般我們更常用(除了魔改方法)的手段是使用:this.$set(obj,item,value);

Q13:為什么我的組件間的樣式不能繼承或者覆寫啊!

單組件開發(fā)模式下,請(qǐng)確認(rèn)是否開啟了?css模塊化功能!也就是scoped(vue-cli 里面配置了,只要加入這個(gè)屬性就自動(dòng)啟用)。

<style lang="scss" scoped></style>

為什么不能繼承或者覆寫呢,那時(shí)因?yàn)槊總€(gè)類或者 id 乃至標(biāo)簽都會(huì)給自動(dòng)在css后面添加hash! 比如:

// 寫的時(shí)候是這個(gè).trangle{}// 編譯過后,加上了 hash.trangle[data-v-1ec35ffc]{}

這些都是在 css-loader 里面配置!!!

Q14:路由模式改為history后,除了首次啟動(dòng)首頁(yè)沒報(bào)錯(cuò),刷新訪問路由都報(bào)錯(cuò)!

必須給對(duì)應(yīng)的服務(wù)端配置查詢的主頁(yè)面..也可以認(rèn)為是主路由入口的引導(dǎo)。

官方文檔也有,為毛總有人不喜歡去看文檔,總喜歡做伸手黨。

Q15:我想攔截頁(yè)面,或者在頁(yè)面進(jìn)來之前做一些事情,可以么?

可以的,各種路由器的鉤子!!當(dāng)然,記憶滾動(dòng)的位置也可以做到,詳情翻翻官網(wǎng)里面的文檔。

Q16:TypeError: xxx is not a function

這種問題明顯就是寫法有問題...能不能動(dòng)點(diǎn)腦子!!

Q17:Uncaught ReferenceError: xxx is not define

實(shí)例內(nèi)的 data 對(duì)應(yīng)的變量沒有聲明,你導(dǎo)入模塊報(bào)這個(gè)錯(cuò)誤,那絕逼是導(dǎo)出沒寫好。

Q18:Error in render function:”Type Error: Cannot read property ‘xxx’ of undefined”

這種問題大多都是初始化的姿勢(shì)不對(duì);比如引入echart這些...仔細(xì)去了解下生命周期,再來具體初始化;

vue 組件有時(shí)候也會(huì)(嵌套組件或者 props傳遞初始化)..也是基本這個(gè)問題

Q19:Unexpected token: operator xxxxx

大佬,這個(gè)一看就是語(yǔ)法錯(cuò)誤啊,基本都是符號(hào)問題, 一般報(bào)錯(cuò)會(huì)給出哪一行或者哪個(gè)組件。

Q20:npm run build之后不能直接訪問

大佬!你最起碼得在本地搭個(gè)服務(wù)器才能訪問好么!!

Q21:CSSbackground引入圖片打包后,訪問路徑錯(cuò)誤

因?yàn)榇虬髨D片是在根目錄下,你用相對(duì)路徑肯定報(bào)錯(cuò)啊....

你可以魔改 webpack 的配置文件里面的static為./static...但是不建議。你若是把圖片什么丟到assets目錄下,然后相對(duì)路徑,打包后是正常的。

Q22:安裝模塊時(shí)命令窗口輸出unsupported platform xxx

一般兩種情況,node版本不兼容,系統(tǒng)不兼容;?

?解決方案: 要么不裝,要么滿足安裝要求;

Q23:Unexpected tab charater這些

一般是你用腳手架初始化的時(shí)候開了 eslint ;要么遵循規(guī)則,要么改變規(guī)則;要么直接把 webpack 里面的 eslint 檢測(cè)給關(guān)閉了。

Q24:Failed to mount component: template or render function not defined

組件掛載失敗,問題只有這么幾個(gè)?

組件沒有正確引入;?
掛載點(diǎn)順序錯(cuò)了了; 自行動(dòng)手排查

Q25:Unknown custom element: <xxx> - did you register the component correctly?

組件沒有正確引入或者正確使用,依次確認(rèn)

導(dǎo)入對(duì)應(yīng)的組件
在 components 內(nèi)聲明?
在 dom 區(qū)域聲明標(biāo)簽

Q26:axios的 post 請(qǐng)求后臺(tái)接受不到!

axios默認(rèn)是 json 格式提交,確認(rèn)后臺(tái)是否做了對(duì)應(yīng)的支持;若是只能接受傳統(tǒng)的表單序列化,就需要自己寫一個(gè)轉(zhuǎn)義的方法...當(dāng)然還有一個(gè)更加省事的方案,裝一個(gè)小模塊qs.

npm install qs -S// 然后在對(duì)應(yīng)的地方轉(zhuǎn)就行了..單一請(qǐng)求也行,攔截器也行...我是寫在攔截器的.// 具體可以看看我 axios 封裝那篇文章//POST傳參序列化(添加請(qǐng)求攔截器)Axios.interceptors.request.use(  config => {    // 在發(fā)送請(qǐng)求之前做某件事    if (      config.method === "post"    ) {      // 序列化      config.data = qs.stringify(config.data); // ***** 這里轉(zhuǎn)義    }
// 若是有做鑒權(quán)token , 就給頭部帶上token if (localStorage.token) { config.headers.Authorization = localStorage.token; } return config; }, error => { Message({ // 餓了么的消息彈窗組件,類似toast showClose: true, message: error, type: "error.data.error.message" }); return Promise.reject(error.data.error.message); });

Q27:Invalid prop: type check failed for prop “xxx”. Expected Boolean, got String.

這種問題一般就是組件內(nèi)的 props 類型已經(jīng)設(shè)置了接受的范圍類型, 而你傳遞的值卻又不是它需要的類型,寫代碼嚴(yán)謹(jǐn)些 OK?

Q28:過濾器可以用于DOM區(qū)域結(jié)合指令么?

// 不行,看下面的錯(cuò)誤例子<li v-for="(item,index) in range | sortByDesc | spliceText">{{item}}</li>// `vue2+`的指令只能用語(yǔ) mustache`{{}}` , 正確姿勢(shì)如下:<span>{{ message | capitalize }}</span>

Q29:[…Array],…mapState,[SOME_MUTATION] (state) {},increment ({ commit }) {}這種寫法是什么鬼!

ES6+(ES2015)的基礎(chǔ)去過一遍..上面依次:數(shù)組解構(gòu),對(duì)象解構(gòu),對(duì)象風(fēng)格函數(shù),對(duì)象解構(gòu)賦值傳遞。

Q30:我的 Vue 網(wǎng)站為什么 UC 訪問一片空白亦或者flex布局錯(cuò)亂!!

來來來,墻角走起.... UC 號(hào)稱移動(dòng)界的 IE 這稱號(hào)不是白叫的。flexbox 布局錯(cuò)亂,一般是你沒有把兼容方案寫上..就是帶各種前綴,復(fù)合屬性拆分。

UC訪問空白, 有一種情況絕對(duì)會(huì)造成,那就是 ES6的代碼降級(jí)不夠徹底. 其他情況可能就是路由配置問題(自己去排除),現(xiàn)在的開發(fā)都推薦按需引入,靠babel-preset-env 來控制,以達(dá)到打包體積減小。

但是這樣做的后果,有些內(nèi)核比較老的...嘿嘿..拜拜。所以最好把代碼完全 ES5話!!記住有些特性不能亂使用,沒有對(duì)應(yīng)的 polyfill,比如 ES6 的proxy

Q31:this.$set | this.$xxx 這個(gè) $ 是個(gè)什么意思?是 jQuery的么,會(huì)沖突么?

且看我細(xì)細(xì)道來.

Vue 的$和 jQuery 的$并沒有半毛錢的關(guān)系,就跟JavaScript和java一樣.
Vue 的$是封裝了一些 vue 的內(nèi)建函數(shù),然后導(dǎo)出以$開頭...這顯然并不是 jQuery的專利;
jQuery 的$是選擇器!!取得 DOM區(qū)域...兩者的作用完全不一致!

Q32:Error in event handler for “click”:”xxx”

這個(gè)問題大多都是你寫的代碼有問題.你的事件觸發(fā)了,但是組件內(nèi)部缺少對(duì)應(yīng)的實(shí)現(xiàn)或者變量,所以拋出事件錯(cuò)誤。

解決方案:看著報(bào)錯(cuò)慢慢排查

Q33:?組件的通訊有哪幾種啊!

基本最常用的是這幾種;

父?jìng)髯? props?
子傳父: emit
兄弟通訊:event bus: 就是找一個(gè)中間組件來作為信息傳遞中介?
vuex: 信息樹

Q34:vuex的用戶信息為什么還要存一遍在瀏覽器里(sessionStorage or localStorage)

因?yàn)?vuex的 store 干不過刷新啊,保存在瀏覽器的緩存內(nèi),若用戶刷新的話,值再取一遍唄;

Q35:“有 Vue + Vue Router + Vuex”或什么”express + vue + mongodb”的項(xiàng)目學(xué)習(xí)么

Github 一搜一大堆,提這些問題的人動(dòng)動(dòng)腦子!

Q36:線上若是 nginx,如何部署?以及反向代理這些!

1.將node端的服務(wù)端口放入服務(wù)器的80端口,做反向代理,這里用的是3000端口來做示范

#先定義一個(gè)website變量,方便管理以后端口的變更,不會(huì)影響到后續(xù)的80端口其他的操作upstream website{  server 127.0.0.1:3000;}server {  listen 80;#業(yè)戶邏輯... ...####  location / {        proxy_pass    http://website;        proxy_redirect default ;  }####  }

Q37:“我會(huì) Vue 我還需要學(xué)習(xí) jQuery 或者原生 JS 么”

jQuery還有很多公司在用,源碼可以學(xué)習(xí)的地方很多;原生 js 是根本,不管是哪個(gè)前端框架,最終都是 js 實(shí)現(xiàn)的;只有基礎(chǔ)扎實(shí),才能學(xué)的比較深...

框架只是加快開發(fā),提高效率,但不是你在這一行長(zhǎng)期立足的根本;

前端的人不僅需要寬度,也要深度...這樣才能走的更遠(yuǎn)....

Q38:npm run dev 報(bào)端口錯(cuò)誤!Error: listen EADDRINUSE :::8080

自己用 webpack搭腳手架的都不用我說了;Vue-cli 里面的 webpack 配置: config/index.js

dev: {    env: require("./dev.env"),    port: 8080, //  這里這里,若是這個(gè)端口已經(jīng)給系統(tǒng)的其他程序占用了.改我改我!!!!!!    autoOpenBrowser: true,    assetsSubDirectory: "static",    assetsPublicPath: "/",    proxyTable: {      "/bp-api": {        target: "http://new.d.st.cn",        changeOrigin: true,        // pathRewrite: {        //   "^/bp-api": "/"        // }    }},

Q39:什么時(shí)候用v-if,什么用 v-show!

我們先來說說兩者的核心差異;

v-if : DOM 區(qū)域沒有生成,沒有插入文檔..等條件成立的時(shí)候才動(dòng)態(tài)插入到頁(yè)面!有些需要遍歷的數(shù)組對(duì)象或者值,最好用這貨控制,等到拿到值才處理遍歷,不然一些操作過快的情況會(huì)報(bào)錯(cuò),比如數(shù)據(jù)還沒請(qǐng)求到!
v-show: DOM 區(qū)域在組件渲染的時(shí)候同時(shí)渲染了,只是單純用 css 隱藏了,對(duì)于下拉菜單,折疊菜單這些數(shù)據(jù)基本不怎么變動(dòng).用這個(gè)最合適了..而且可以改善用戶體驗(yàn),因?yàn)樗粫?huì)導(dǎo)致頁(yè)面的重繪,DOM 操作會(huì)!

簡(jiǎn)言之: DOM結(jié)構(gòu)不怎么變化的用v-show, 數(shù)據(jù)需要改動(dòng)很大或者布局改動(dòng)的用v-if

Q40:<template>是什么,html5的標(biāo)簽么?

你猜對(duì)了..html5的標(biāo)簽還真有這么一個(gè),不過 Vue 的 template 有點(diǎn)不一樣,不是去給瀏覽器解析的。

你可以理解為一個(gè)臨時(shí)標(biāo)簽,用來方便你寫循環(huán),判斷的....

因?yàn)樽罱K template 不會(huì)解析到瀏覽器的頁(yè)面,他只是在 Vue 解析的過程充當(dāng)一個(gè)包裹層!最終我們看到的是內(nèi)部處理后的組合的 DOM 結(jié)構(gòu)!

Q41:the “scope” attribute for scoped slots …. replaced by “slot-scope” since 2.5

這個(gè)問題只出現(xiàn)老項(xiàng)目升級(jí)到 vue2.5+的時(shí)候, 提示就是 scope 現(xiàn)在要用 slot-scope 來代替,但是 scope 暫時(shí)可以用,以后會(huì)移除

Q42:Uncaught ReferenceError : Vue is not defined!

依次排除:

Vue是否正確引入!?
Vue是否正確實(shí)例化!?
Vue 用的姿勢(shì)是否正確(比如你直接一個(gè) Vue 的變量!!!剛好又沒定義,,具體問題具體分析吧)

Q43:ERROR in static/js/xxxxxxx.js from UglifyJs

我知道其中一種情況會(huì)報(bào)這種情況,就是你引入的 js,是直接引入壓縮版本后的 js(xxx.min.js);然后 webpack 內(nèi)又啟用了 UglifyJs(壓縮 JS的), 二重壓縮大多都會(huì)報(bào)錯(cuò)!!

解決方案:引入標(biāo)準(zhǔn)未壓縮的 JS

Q44:props不使用:(v-bind)可以傳遞值么!

可以,只是默認(rèn)傳遞的類型會(huì)被解析成字符串!若是要傳遞其他類型,該綁定還是綁定。

Q45:Uncaught TypeError : Cannot set property xxx which has only a getter

這個(gè)問題就是你要操作的屬性只允許 getter,不允許 setter;

解決方案? 用了別人的東西就要遵循別人的套路來,不然就只能自己動(dòng)手豐衣足食了!

Q46:?jiǎn)谓M件中里面的 import xxx from ‘@/components/layout/xxx’中的@是什么鬼!

這是 webpack 方面的知識(shí),看到了也說下吧...webpack可以配置alias(也就是路徑別名),玩過 linux 或者 mac 都知道。

依舊如上,會(huì)自己搭腳手架的不用我說了...看看 vue-cli 里面的;

文件名: build -> webpack.base.conf.js

resolve: {    extensions: [".js", ".vue", ".json"], // 可以導(dǎo)入的時(shí)候忽略的拓展名范圍    alias: {      vue$: "vue/dist/vue.esm.js",        "@": resolve("src"), // 這里就是別名了,比如@就代表直接從/src 下開始找起!!!      "~": resolve("src/components")    }},

Q47:SCSS(SASS) 還是 less,stylus 好!

三者都是預(yù)處理器;

scss 出現(xiàn)最久,能做的功能比較多,但是若是普通的嵌套寫法,繼承,mixin 啊,這三個(gè)都差不多..會(huì)其中一個(gè)其他兩個(gè)的粗淺用法基本也會(huì)了,不過寫法有些差異:

scss: 寫法上是像 css 靠齊
sass : 其實(shí)也就是 scss , 只是寫法不一樣...靠的是縮進(jìn)
less : 跟 css 基本靠齊
stylus : 一樣,靠縮進(jìn)..跟pug(Jade)一樣

使用環(huán)境的差異:

scss 可以借助 ruby 或者 node-sass 編譯
less 可以用 less.js 或者對(duì)應(yīng)的 loader 解析
stylus 只能借助 loader 解析,它的出現(xiàn)就是基于 node 的

也有一個(gè)后起之秀,主打解耦,插件化的!!! 那就是PostCSS,這個(gè)是后處理器! 有興趣的可以自行去了解,上面的寫法都能借助插件實(shí)現(xiàn)!

Q48:Failed to compile with x errors : This dependency was not found !

編譯錯(cuò)誤,對(duì)應(yīng)的依賴沒找到! 解決如下:

知道缺少對(duì)應(yīng)的模塊,直接裝進(jìn)去,若是一個(gè)你已經(jīng)安裝的大模塊(比如 axios)里面的子模塊(依賴包)出了問題,卸載重裝整個(gè)大模塊.因?yàn)槟阊a(bǔ)全不一定有用!

Q49:SyntaxError: Unexpected identifier;

語(yǔ)法錯(cuò)誤,看錯(cuò)誤信息去找到對(duì)應(yīng)的頁(yè)面排查!

Q50:為什么我的 npm 或者 yarn 安裝依賴會(huì)生成 lock文件,有什么用!

lock 文件的作用是統(tǒng)一版本號(hào),這對(duì)團(tuán)隊(duì)協(xié)作有很大的作用;

若是沒有 lock 鎖定,根據(jù)package.json里面的^,~這些.

不同人,不同時(shí)間安裝出來的版本號(hào)不一定一致;

有些包甚至有一些breaking change(破壞性的更新),造成開發(fā)很難順利進(jìn)行!

Q51:?組件可以緩存么?

可以,用keep-alive;

不過是有代碼的..占有內(nèi)存會(huì)多了...所以無腦的緩存所有組件!!!別說性能好了..切換幾次,有些硬件 hold不住的,瀏覽器直接崩潰或者卡死..

所以keep-alive一般緩存都是一些列表頁(yè),不會(huì)有太多的操作,更多的只是結(jié)果集的更換..給路由的組件meta增加一個(gè)標(biāo)志位,結(jié)合v-if就可以按需加上緩存了!

Q52:package.json里面的dependencies 和devDependencies的差異!

其實(shí)不嚴(yán)格的話,沒有特別的差異;若是嚴(yán)格,遵循官方的理解;

dependencies : 存放線上或者業(yè)務(wù)能訪問的核心代碼模塊,比如 vue,vue-router;

devDependencies: 處于開發(fā)模式下所依賴的開發(fā)模塊,也許只是用來解析代碼,轉(zhuǎn)義代碼,但是不產(chǎn)生額外的代碼到生產(chǎn)環(huán)境, 比如什么babel-core這些 如何把包安裝到對(duì)應(yīng)的依賴下呢?

npm install --save xxxx // dependenciesnpm install --save-dev xxxx // devDependencies
//也能用簡(jiǎn)易的寫法(i:install,-S:save,-D:save-dev)
npm i -S xxxx // npm install --save xxxxnpm i -D xxxx // npm install --save-dev xxxx

Q53:安裝chromedriver報(bào)錯(cuò)!!姿勢(shì)沒錯(cuò)啊npm i -D chromedriver

恩,偉大的 GFW.....解決方案:指定國(guó)內(nèi)的源安裝就可以了

npm install --save-dev chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver

Q54:Vue ,react, Angular學(xué)習(xí)哪個(gè)好?哪個(gè)工作比較好找!

Vue屬于漸進(jìn)式開發(fā),傳統(tǒng)開發(fā)過渡 MVVM 模式的小伙伴,Vue 比較好上手,學(xué)習(xí)成本比較低。

基礎(chǔ)比較好的,有折騰精神的,可以選擇NG5或者react?16;

NG5需要學(xué)習(xí)typescript和rxjs,還用到比較多的新東西,比如裝飾器,后端的注入概念.ng有自己的一整套 MVVM 流程;

而Vue和React核心只是view,可以搭配自己喜歡的

React的寫法偏向函數(shù)式寫法,還有 jsx,官方自己有 flow,當(dāng)然也能搭配ts,我也沒怎么接觸..所以也有一定的學(xué)習(xí)成本;

至于哪個(gè)比較好找工作!!!告訴你..若是只會(huì)一個(gè)框架,那不是一個(gè)合格的前端;

人家要的是動(dòng)手能力,解決能力!!!!技術(shù)和待遇是成正比的!!

顏值和背景,學(xué)歷,口才可以加分..但是這些條件你必須要有的基礎(chǔ)下才能考慮這些!!!

Q55:我有個(gè)復(fù)雜組件需要有新增和編輯的功能同時(shí)存在,但是字段要保持不變性怎么破

字段保持不變性怎么理解呢? 就是說比如新增和編輯同時(shí)共享一份 data;

有一種就是路由變了,組件渲染同一個(gè)(不引起組件的重新渲染和銷毀!),但是功能卻不同(新增和編譯)..

比如從編輯切到新增,data必須為空白沒有賦值的,等待我們?nèi)ベx值;

這時(shí)候有個(gè)東西就特別適合了,那就是immutable-js;

這個(gè)東西可以模擬數(shù)據(jù)的唯一性!或者叫做不變性!

Q56:“首屏加載比較慢!!怎么破!打包文件文件比較大”

依次排除和確認(rèn):

減少第三方庫(kù)的使用,比如jquey這些都可以不要了,很少操作 dom,而且原生基本滿足開發(fā)。

若是引入moment這些,webpack 排除國(guó)際化語(yǔ)言包。

webpack 常規(guī)壓縮js,css, 愿意折騰的還可以引入 dll 這些。

路由組件采用懶加載。

加入路由過渡和加載等待效果,雖然不能解決根本,但起碼讓人等的舒心一點(diǎn)不是么!!!

整體下來,打包之后一般不會(huì)太大;

但是倘若想要更快?那就只能采用服務(wù)端渲染(SSR)了,可以避免瀏覽器去解析模板和指令這些;

直接返回一個(gè) html ....還能?seo...

Q57:Vue SPA 沒法做優(yōu)化(SEO)!有解決方案么

可以的,SSR(服務(wù)端渲染就能滿足你的需求),因?yàn)檎?qǐng)求回來就是一個(gè)處理完畢的 html,現(xiàn)在 vue 的服務(wù)端開發(fā)框架有這么個(gè)比較流行,如下Nuxt.js。

Q58:Vue可以寫 hybird App 么!

當(dāng)然可以,兩個(gè)方向.

codorva + nativescriptWeex

Q59:Vue可以寫桌面端么?

當(dāng)然可以,有electron和node-webkit(nw); 我只了解過electron;

electronelectron-vue: Vue-cli 針對(duì) electron 的腳手架模板

Q60:Vue開發(fā),項(xiàng)目中還需要 jQuery么

分情況探討:

若是老項(xiàng)目,只是單純引入 Vue 簡(jiǎn)化開發(fā)的,依舊用吧…
重構(gòu)項(xiàng)目?或者發(fā)起新項(xiàng)目的,真心沒必要了.開發(fā)思路不一樣,很多以前用 DOM 操作的現(xiàn)在基本可以數(shù)據(jù)驅(qū)動(dòng)實(shí)現(xiàn),而少量迫不得已的DOM 操作原生就能搞定…而且能小打包體積,速度又快,何樂而不為!文章來源地址http://www.zghlxwxcb.cn/news/detail-694318.html

到了這里,關(guān)于vue常見問題匯總的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 等保2.0常見問題匯總

    等保2.0常見問題匯總

    等保2.0發(fā)布后,整個(gè)網(wǎng)絡(luò)安全行業(yè)積極學(xué)習(xí)并按照新規(guī)范進(jìn)行網(wǎng)絡(luò)系統(tǒng)的部署。然而許多人仍然對(duì)等保制度的來歷、發(fā)展、演變以及貫徹重點(diǎn)存在疑問。等保2.0依然在整個(gè)實(shí)施流程上由五個(gè)標(biāo)準(zhǔn)環(huán)節(jié)構(gòu)成:定級(jí)、備案、建設(shè)整改、等級(jí)測(cè)評(píng)、監(jiān)督檢查五個(gè)方面。本文匯總梳理

    2024年02月04日
    瀏覽(20)
  • 大數(shù)據(jù)常見面試問題匯總

    目錄 第1章 核心技術(shù) 1.1 LinuxShell 1.1.1 Linux常用高級(jí)命令 1.1.2 Shell常用工具及寫過的腳本 1.1.3 Shell中單引號(hào)和雙引號(hào)區(qū)別 1.2 Hadoop 1.2.1 Hadoop常用端口號(hào) 1.2.2 HDFS讀流程和寫流程 1.2.3 HDFS小文件處理 1.2.4 HDFS的NameNode內(nèi)存 1.2.5 Shuffle及優(yōu)化 1.2.6 Yarn工作機(jī)制 1.2.7 Yarn調(diào)度器 1.2.8 HDFS塊大

    2024年02月14日
    瀏覽(21)
  • 畢業(yè)設(shè)計(jì)答辯常見問題匯總

    答:P0口做數(shù)據(jù)總線用是不需要加上拉電阻,這個(gè)書上面有寫的,就是8個(gè)IO口同時(shí)控制輸出,比如P0口接1602液晶、12864液晶、數(shù)碼管的8段段選等等都不需要加上拉電阻,如果做單個(gè)的IO口用就要加上拉電阻。 答:這個(gè)論文中有的,也都是一些套話。我就不答了,我整理的都是

    2024年02月05日
    瀏覽(22)
  • oracle 19c環(huán)境常見問題匯總

    1、rman備份時(shí)會(huì)消耗這么多臨時(shí)表空間 參考MOS: RMAN-08132: Warning: Cannot Update Recovery Area ORA-01652: unable to extend temp segment by 64 in tablespace TEMP (Doc ID 2658437.1) Known RMAN Performance Problems (Doc ID 247611.1) 處理辦法:備份時(shí),會(huì)話級(jí)別將optimizer_mode由ALL_ROWS改成RULE RMAN sql \\\"alter session set optimi

    2024年02月12日
    瀏覽(24)
  • FPGA/IC面試常見問題匯總

    FPGA/IC面試常見問題匯總

    參考:數(shù)字IC設(shè)計(jì)工程師筆試面試經(jīng)典100題_OnePlusZero的博客-CSDN博客_數(shù)字ic設(shè)計(jì)面試題 目錄 參考:數(shù)字IC設(shè)計(jì)工程師筆試面試經(jīng)典100題_OnePlusZero的博客-CSDN博客_數(shù)字ic設(shè)計(jì)面試題 1、同步復(fù)位和異步復(fù)位的優(yōu)缺點(diǎn) 2、什么是競(jìng)爭(zhēng)和冒險(xiǎn),如何消除? 3、什么是同步電路,什么是異

    2024年02月11日
    瀏覽(24)
  • RecycleView基本使用及常見問題匯總

    RecycleView屬于android基礎(chǔ)組件,比較常用,下面總結(jié)下其使用的基礎(chǔ)流程及常見問題解決辦法(常見問題會(huì)定期更新) 基礎(chǔ)使用 首先在xml里引入RecycleView 編寫adapter,分以下幾步 1.創(chuàng)建自定義adapter類,創(chuàng)建內(nèi)部類MyViewHolder,并實(shí)現(xiàn)RecycleView的ViewHolder,參數(shù)傳遞view 創(chuàng)建item layout,里

    2024年01月16日
    瀏覽(23)
  • 性能測(cè)試工具LR常見問題匯總

    本文是收集整理LR常見的問題,如果你有收集整理常見的問題 本文意義:讓所有使用LR的同學(xué),在此處能找到LR日常碰到問題的解決方案。 1 )如果安裝 了IE以外的瀏覽器,并且IE不是默認(rèn)瀏覽器,則無法生成錄制腳本 2 )如果錄制腳本時(shí)IE 不能打開,則需要將瀏覽器的IE工具

    2024年02月10日
    瀏覽(23)
  • CAN協(xié)議詳解+常見問題匯總,吐血整理?。?!

    CAN協(xié)議詳解+常見問題匯總,吐血整理?。?!

    文章分兩部分,一是CAN的詳解,二是常見問題匯總;文章長(zhǎng),但是都是重點(diǎn)精華,往有幫助~ (參考的是火哥的STM32有關(guān)CAN協(xié)議的文檔) 一、CAN的詳解 1. 物理層 CAN總線:成為汽車計(jì)算機(jī)控制系統(tǒng)和嵌入式工業(yè)控制局域網(wǎng)的標(biāo)準(zhǔn)總線。 CAN是異步通訊,只有CAN_High和CAN_Low兩條信

    2024年02月08日
    瀏覽(21)
  • Docker常見問題/面試題匯總和解析

    Docker是一種開源容器平臺(tái),可以通過輕量級(jí)容器來實(shí)現(xiàn)應(yīng)用程序的打包、發(fā)布和部署。 虛擬機(jī)使用虛擬化技術(shù)來在操作系統(tǒng)上運(yùn)行多個(gè)獨(dú)立的操作系統(tǒng)。而容器只需要一個(gè)共享的操作系統(tǒng)內(nèi)核即可運(yùn)行多個(gè)隔離的用戶空間實(shí)例。 Docker 主要由三個(gè)組件組成:客戶端(Docker Cl

    2024年02月16日
    瀏覽(45)
  • MySQL 索引常見問題匯總,一次性梳理

    MySQL 索引常見問題匯總,一次性梳理

    hello,大家好,我是張張,「架構(gòu)精進(jìn)之路」公號(hào)作者。 ? 提到MySQL查詢分析,就會(huì)涉及到索引相關(guān)知識(shí),要想學(xué)好MySQL,索引是重要且不得不啃下的一環(huán),今天就把MySQL索引常見問題進(jìn)行匯總,一次性梳理清楚。 文章目錄: 索引 什么是索引? 索引的優(yōu)缺點(diǎn)? 索引的作用?

    2024年02月07日
    瀏覽(88)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包