使用vue遇到的一些問題

當(dāng)前項(xiàng)目需要用vue重寫,由于Vue還是初學(xué),所以肯定會(huì)遇到一些問題,在這里記錄一下,方便查看。

vuex綁定到v-model提示

[Vue warn]: Computed property "productSeries" was assigned to but it has no setter.

描述: 將vuex中的數(shù)據(jù)直接拿出來并通過v-model綁定到頁(yè)面元素上,報(bào)錯(cuò)。原因是vuex類似redux,其數(shù)據(jù)只允許通過vuex提供的方法,action、mutation來更改。

解決: 思考這個(gè)數(shù)據(jù)節(jié)點(diǎn)是不是特別有必要放在vuex,如果不需要,則只綁定到當(dāng)前組件就行了,如果需要,則有兩種方法解決:1、在當(dāng)前組件的data中定義一個(gè)對(duì)象來接收store中的數(shù)據(jù);2、加入get和set方法。

P.S. vuex給我的感覺:數(shù)據(jù)能寫在當(dāng)前頁(yè)面就寫在當(dāng)前頁(yè)面,盡量少用vuex。不然又要寫get/set方法,又要考慮action/dispatch,感覺有點(diǎn)麻煩,不能突出vue雙向綁定的優(yōu)勢(shì)。

Vue-cli生成的項(xiàng)目在局域網(wǎng)調(diào)試的問題

描述: 在mac上面用vue-cli創(chuàng)建的項(xiàng)目,直接npm start打開調(diào)試,本機(jī)可以用localhost:8080打開,mac在局域網(wǎng)內(nèi)的地址為 192.168.43.102,然而我用一臺(tái)windows輸入 192.168.43.102:8080 卻打不開,感覺可能是vue-cli沒有默認(rèn)配置。

解決: 打開項(xiàng)目根目錄下的config/index.js,看到host這一行

host: 'localhost', // can be overwritten by process.env.HOST

恩,可以直接在node進(jìn)程寫HOST
遂打開根目錄下的package.json,修改start命令,添加一個(gè)HOST

"start": "npm run dev"

改成

"start": "HOST=0.0.0.0 npm run dev"

執(zhí)行npm start

問題解決

Vuex在IE11無法使用的問題

描述: 客戶需要兼容IE11,直接用IE11打開頁(yè)面,發(fā)現(xiàn)頁(yè)面空白,什么都沒顯示。
打開IE的控制臺(tái),出現(xiàn)了vuex的提示:
[vuex] vuex requires a Promise polyfill in this browser
看來是IE11不支持Promise

解決: 上github,搜到兩個(gè)相關(guān)的問題

https://github.com/vuejs-templates/webpack/issues/260
https://github.com/vuejs-templates/webpack/issues/474

尤大提示 解決方案就是引入babel-polyfill或者es6-promise
看了一下其他回復(fù),我選擇安裝es6-promise

npm install es6-promise

然后在main.js第一行引入

// 添加es6-promise以兼容IE
import 'es6-promise/auto';

import Vue from 'vue';
import App from './App';
import router from './router';
import store from './store';
// 其他內(nèi)容

問題解決

Cannot read property 'compilation' of undefined的問題

描述: 用vue-cli生成的一個(gè)項(xiàng)目,直接npm run build,報(bào)錯(cuò)

> tms-vue-ele@1.0.0 build /Users/jianghai/codes/tms-vue-ele
> node build/build.js
? building for production.../Users/jianghai/codes/tms-vue-ele/node_modules/last-call-webpack-plugin/src/index.js:170
 compiler.hooks.compilation.tap(
 ^
TypeError: Cannot read property 'compilation' of undefined
 at OptimizeCssAssetsWebpackPlugin.apply (/Users/jianghai/codes/tms-vue-ele/node_modules/last-call-webpack-plugin/src/index.js:170:20)
 at Compiler.apply (/Users/jianghai/codes/tms-vue-ele/node_modules/tapable/lib/Tapable.js:375:16)
 at webpack (/Users/jianghai/codes/tms-vue-ele/node_modules/webpack/lib/webpack.js:33:19)
 at err (/Users/jianghai/codes/tms-vue-ele/build/build.js:19:3)
 at next (/Users/jianghai/codes/tms-vue-ele/node_modules/rimraf/rimraf.js:75:7)
 at CB (/Users/jianghai/codes/tms-vue-ele/node_modules/rimraf/rimraf.js:111:9)
 at /Users/jianghai/codes/tms-vue-ele/node_modules/rimraf/rimraf.js:137:14
 at FSReqWrap.oncomplete (fs.js:152:21)

解決: 根據(jù)提示,打算一層一層找,首先第一行

at OptimizeCssAssetsWebpackPlugin.apply (/Users/jianghai/codes/tms-vue-ele/node_modules/last-call-webpack-plugin/src/index.js:170:20)

可能是OptimizeCssAssetsWebpackPlugin這個(gè)方法的問題,首先上npm找到optimize-css-assets-webpack-plugin這個(gè)包

https://www.npmjs.com/package/optimize-css-assets-webpack-plugin

官方提示:
For webpack v3 or below please use optimize-css-assets-webpack-plugin@3.2.0. The optimize-css-assets-webpack-plugin@4.0.0 version and above supports webpack v4.

遂打開package.json,發(fā)現(xiàn)webpack版本3.6.0,optimize-css-assets-webpack-plugin版本5.0.1
判斷是這個(gè)原因,卸載之,重裝到3.2.0

npm uninstall optimize-css-assets-webpack-plugin --save-dev
npm i optimize-css-assets-webpack-plugin@3.2.0 --save-dev

然后執(zhí)行npm run build,成功!

問題解決

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ## 框架和庫(kù)的區(qū)別?> 框架(framework):一套完整的軟件設(shè)計(jì)架構(gòu)和**解決方案**。> > 庫(kù)(lib...
    Rui_bdad閱讀 3,153評(píng)論 1 4
  • 本文主要從一個(gè)上線項(xiàng)目的packge.json分析一個(gè)上線項(xiàng)目中常見的插件以及為什么會(huì)引入這些插件。 通過這些配置...
    Leslie_2386閱讀 1,070評(píng)論 0 2
  • 本文主要從一個(gè)上線項(xiàng)目的packge.json分析一個(gè)上線項(xiàng)目中常見的插件以及為什么會(huì)引入這些插件。 通過這些配置...
    程序員之路閱讀 591評(píng)論 0 2
  • 簡(jiǎn)介 vue cli 3 是一個(gè)類似于 create-react-app 的可以用例命令行快速配置和生成一個(gè) vu...
    VioletJack閱讀 9,557評(píng)論 3 22
  • 爸: 爸,有很多感激、感恩、貼心的話想和你說,卻當(dāng)著你的面說不出口,我們都是不善表達(dá)感情的人??晌覅s很想讓您知道我...
    墻角寒梅閱讀 117評(píng)論 0 0

友情鏈接更多精彩內(nèi)容