摘要:更新時(shí)間這個(gè)問題是實(shí)例內(nèi)單組件的必須返回一個(gè)對(duì)象如下為什么要一個(gè)數(shù)據(jù)對(duì)象呢官方解釋如下必須聲明為返回一個(gè)初始數(shù)據(jù)對(duì)象的函數(shù),因?yàn)榻M件可能被用來創(chuàng)建多個(gè)實(shí)例。
更新時(shí)間:2018-07-29
1.data functions should return an object// 這個(gè)問題是 Vue 實(shí)例內(nèi),單組件的data必須返回一個(gè)對(duì)象;如下 // 為什么要 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ì)象!2.我給組件內(nèi)的原生控件添加事件,怎么不生效了
3.我用了 axios或ES6promise新特性, 為什么 IE 瀏覽器不識(shí)別(IE9+)導(dǎo)航
IE系列不能識(shí)別promise特性,在webpack入口處添加babel-polyfill插件 module.exports = { context: path.resolve(__dirname, "../"), entry: { // 使用babel-polyfill 可以模擬ES6使用的環(huán)境,可以使用ES6的所有新方法 app: ["babel-polyfill", "./src/main.js"] }, ... }4.跨域問題No "Access-Control-Allow-Origin" header is present on the requested resource.
1: CORS 前后端都要對(duì)應(yīng)去配置,IE10+
2: nginx 反向代理,線上環(huán)境可以用這個(gè)詳細(xì)配置可以看我另一篇文章nginx反向代理
3:jsonp 只支持get方式,局限太大
如果你用的是vue-cli腳手架生成的目錄結(jié)構(gòu),開發(fā)環(huán)境可以配置proxyTable來解決跨域,本質(zhì)上也是node.js代理了請(qǐng)求
// 在 config 目錄下的index.js // target : 就是 api 的代理的實(shí)際路徑 // pathRewrite : 就是路徑重定向 proxyTable: { "/apis": { target: "http://10.1.1.1:8090", changeOrigin: true, pathRewrite: { "^/": "/" } } }5.明明更改了數(shù)組元素的內(nèi)容,或者添加刪除了對(duì)象的屬性,視圖為什么沒有更新
// 由于 JavaScript 的限制,Vue 不能檢測(cè)以下變動(dòng)的數(shù)組: // 當(dāng)你利用索引直接設(shè)置一個(gè)項(xiàng)時(shí),例如:vm.items[indexOfItem] = newValue // 當(dāng)你修改數(shù)組的長(zhǎng)度時(shí),例如:vm.items.length = newLength // 還是由于 JavaScript 的限制,Vue 不能檢測(cè)對(duì)象屬性的添加或刪除: var vm = new Vue({ data: { a: 1 } }) // `vm.a` 現(xiàn)在是響應(yīng)式的 vm.b = 2 // `vm.b` 不是響應(yīng)式的 // 解決辦法:this.$set(obj,item,value);
官方文檔傳送門:vue
6.為什么我的組件間的樣式不能繼承或者覆寫// 單組件開發(fā)模式下,請(qǐng)確認(rèn)是否開啟了 CSS模塊化功能!! // 也就是scoped(vue-cli 里面配置了,只要加入這個(gè)屬性就自動(dòng)啟用) // 復(fù)制代碼為什么不能繼承或者覆寫呢,那時(shí)因?yàn)槊總€(gè)類或者 id 乃至標(biāo)簽都會(huì)給自動(dòng)在css后面添加hash! // 寫的時(shí)候是這個(gè) .test{} // 編譯過后,加上了 hash .test[data-v-1ec35ffc]{}7.路由模式改為history后,除了首次啟動(dòng)首頁(yè)沒報(bào)錯(cuò),刷新訪問路由都報(bào)錯(cuò)
當(dāng)你使用 history 模式時(shí),URL 就像正常的 url,例如 http://yoursite.com/user/id,也好看!
不過這種模式要玩好,還需要后臺(tái)配置支持。因?yàn)槲覀兊膽?yīng)用是個(gè)單頁(yè)客戶端應(yīng)用,如果后臺(tái)沒有正確的配置,當(dāng)用戶在瀏覽器直接訪問 http://oursite.com/user/id 就會(huì)返回 404,這就不好看了。
所以呢,你要在服務(wù)端增加一個(gè)覆蓋所有情況的候選資源:如果 URL 匹配不到任何靜態(tài)資源,則應(yīng)該返回同一個(gè) index.html 頁(yè)面,這個(gè)頁(yè)面就是你 app 依賴的頁(yè)面。
官方文檔:vue-router
可以通過$refs或者$chilren來拿到對(duì)應(yīng)的vue實(shí)例,從而操作
9.組件的通訊方式有幾種父?jìng)髯? props
子傳父: this.$emit(funName, arg)
兄弟通訊:
event bus: 就是找一個(gè)中間組件來作為信息傳遞中介
vuex: 狀態(tài)管理,為了避免刷新時(shí)丟失數(shù)據(jù)可以和localStorage或sessionStorage本地存儲(chǔ)結(jié)合使用
傳送門:
vue官方組件間的通訊
vuex
可維護(hù)性: 因?yàn)槭菃蜗驍?shù)據(jù)流,所有狀態(tài)是有跡可循的...數(shù)據(jù)的傳遞也可以及時(shí)分發(fā)響應(yīng)
易用性: 它使得我們組件間的通訊變得更強(qiáng)大,而不用借助中間件這類來實(shí)現(xiàn)不同組件間的通訊
vuex的store保存在瀏覽器的緩存內(nèi),若用戶刷新的話,數(shù)據(jù)將會(huì)丟失
12.npm run dev 報(bào)端口錯(cuò)誤!Error: listen EADDRINUSE :::8080若果是vue-cli腳手架搭建的vue項(xiàng)目
更改webpack 配置: config/index.js
dev: { env: require("./dev.env"), port: 8080, // 更改啟動(dòng)端口 ... }
若是自己搭建的nodejs服務(wù),或nginx服務(wù),更改啟動(dòng)的端口號(hào)就行
13.什么時(shí)候用v-if,什么用 v-showv-if : DOM 區(qū)域沒有生成,只有條件為真時(shí)才渲染
v-show: DOM 區(qū)域在組件渲染的時(shí)候同時(shí)渲染了,只是display:none
// webpack可以配置alias(也就是路徑別名) // 若是vue-cli腳手架位置在build/webpack.base.conf.js resolve: { extensions: [".js", ".vue", ".json"], alias: { "vue$": "vue/dist/vue.esm.js", "@": resolve("src"), "common": resolve("./src/common"), "components": resolve("./src/components"), "api": resolve("./src/api"), "base": resolve("./src/base") } // 盡情配置吧15.我在函數(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 的上下文;
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/96370.html
摘要:好了,項(xiàng)目啟動(dòng)了,目錄結(jié)構(gòu)也清楚了,接下來就是整個(gè)現(xiàn)有項(xiàng)目的遷移了目前正在改造項(xiàng)目,文章尚未寫完,會(huì)抽時(shí)間不定期的繼續(xù)更新項(xiàng)目的改造過程及分享改造過程中遇到的問題 公司項(xiàng)目,最初只為了實(shí)現(xiàn)前后端分離式開發(fā),直接選擇了vue框架進(jìn)行開發(fā),然而現(xiàn)在項(xiàng)目基本完成了,發(fā)現(xiàn)蜘蛛根本就抓取不到網(wǎng)站數(shù)據(jù),搜索引擎搜出來,都是一片空白沒有數(shù)據(jù),需要對(duì)項(xiàng)目做SEO優(yōu)化。 本人第一次接觸SEO的優(yōu)化,完全...
摘要:用來主要前臺(tái)的請(qǐng)求,并處理返回相關(guān)的數(shù)據(jù),做后臺(tái)服務(wù)??偨Y(jié)做完這個(gè)項(xiàng)目,其中的過程還是挺艱辛的,畢竟都是邊學(xué)邊做,不過最后能完成還是挺開心的,終于有了一個(gè)從到的項(xiàng)目過程。雖然只是一個(gè)小小的練手項(xiàng)目,不過對(duì)于目前的我,感覺還是不錯(cuò)的。 showImg(https://oc1gyfe6q.qnssl.com/17-3-30/43434844-file_1490879850754_14751...
摘要:用來主要前臺(tái)的請(qǐng)求,并處理返回相關(guān)的數(shù)據(jù),做后臺(tái)服務(wù)??偨Y(jié)做完這個(gè)項(xiàng)目,其中的過程還是挺艱辛的,畢竟都是邊學(xué)邊做,不過最后能完成還是挺開心的,終于有了一個(gè)從到的項(xiàng)目過程。雖然只是一個(gè)小小的練手項(xiàng)目,不過對(duì)于目前的我,感覺還是不錯(cuò)的。 showImg(https://oc1gyfe6q.qnssl.com/17-3-30/43434844-file_1490879850754_14751...
摘要:用來主要前臺(tái)的請(qǐng)求,并處理返回相關(guān)的數(shù)據(jù),做后臺(tái)服務(wù)??偨Y(jié)做完這個(gè)項(xiàng)目,其中的過程還是挺艱辛的,畢竟都是邊學(xué)邊做,不過最后能完成還是挺開心的,終于有了一個(gè)從到的項(xiàng)目過程。雖然只是一個(gè)小小的練手項(xiàng)目,不過對(duì)于目前的我,感覺還是不錯(cuò)的。 showImg(https://oc1gyfe6q.qnssl.com/17-3-30/43434844-file_1490879850754_14751...
閱讀 864·2021-10-09 09:58
閱讀 709·2021-08-27 16:24
閱讀 1791·2019-08-30 14:15
閱讀 2437·2019-08-30 11:04
閱讀 2165·2019-08-29 18:43
閱讀 2229·2019-08-29 15:20
閱讀 2782·2019-08-26 12:20
閱讀 1700·2019-08-26 11:44