Vue2.0使用過(guò)程常見的一些問(wèn)題總結(jié)學(xué)習(xí)
最近在學(xué)習(xí)Vue,今天正好寫個(gè)學(xué)習(xí)筆記,把以前遇到的錯(cuò)誤給總結(jié)一下。
Vue目前的的開發(fā)模式主要有兩種:
1.直接頁(yè)面級(jí)的開發(fā),script直接引入Vue
2.工程性開發(fā),webpack+loader或者直接使用腳手架工具Vue-cli,里面的文件都配置好了
webpack可以進(jìn)行配置,配置多文件入口,進(jìn)行多頁(yè)面開發(fā)
第二種Vue開發(fā),結(jié)合webpack打包完文件會(huì)很大,怎么解決這個(gè)問(wèn)題?
1.webpack代碼拆分:code-spliting
2.提取公共(如提取css,js)
3.預(yù)渲染:使用prerender-spa-plugin插件
4.后臺(tái)————開啟壓縮,gzip (會(huì)很有用)
5.異步加載組件:require.ensure
Vue常見錯(cuò)誤解決方法:
1.[Vue-warn]: Missing required prop: "to" (found in component <router-link>)
這個(gè)錯(cuò)誤是<router-link>少了個(gè)to或者是寫錯(cuò) ,正確寫法為:<router-link to="/home">
并且路由在做字符串拼接的時(shí)候,to要作為一個(gè)屬性綁定 <router-link :to="'/home/'+item.id">
2.端口沖突錯(cuò)誤:需要改端口
當(dāng)然現(xiàn)在vue2.0中的webpack 已經(jīng)自己會(huì)根據(jù)你的端口號(hào)進(jìn)行改正,從8080往后面進(jìn)行遞增,不會(huì)發(fā)生端口號(hào)沖突的情況,在vue1.0中會(huì)經(jīng)常出現(xiàn)
3.[Vue-warn]:Unknown custom element: <router-link> - did you register the component correctiy?
錯(cuò)誤1:引進(jìn)來(lái)的vue-router沒有use()
import Vue from 'vue' import VueRouter from 'vue-router' Vue.use(VueRouter);
錯(cuò)誤2:在生成路由實(shí)例之后,沒有將路由掛到我們的Vue實(shí)例上面
const router=new VueRouter({
mode:'history',//切換路徑模式,變成history模式,不然路徑為/#/home
scrollBehavior:()=>({ // 滾動(dòng)條滾動(dòng)的行為,不加這個(gè)默認(rèn)就會(huì)記憶原來(lái)滾動(dòng)條的位置
y:0
}),
// 注意這里的名稱
routes
});
new Vue({
/* 4.最后掛到vue上 */
router,
el: '#app',
render: h => h(App)
});
4.Uncaught TypeError: _vuex2.default.store is not a constructor
這個(gè)報(bào)錯(cuò)的是_vuex2.default.store 不是一個(gè)構(gòu)造函數(shù),因?yàn)樵谖覀冇胿uex的時(shí)候需要將用到的actions,mutations模塊最終導(dǎo)出,在導(dǎo)出的時(shí)候new Vuex.Store中的Store小寫了,這里的一定要大寫,就相當(dāng)于我們?cè)谑褂脴?gòu)造函數(shù)(類)的時(shí)候首字母要大寫
import mutations from './mutations.js'
import actions from './actions.js'
export default new Vuex.Store({ //Vue.Stroe()首字母大寫
modules:{ //這里注意mutations導(dǎo)出的是一個(gè)模塊
mutations
},
actions
});
5. Moudel not found:Error:Can't resolve "style" in 'D:\vue-demo'
在vue1.0中,在webpack.config.js中配置css文件時(shí)
module:{
loaders:[
{
test:/\.css$/,
loader:'style!css'
}
]
}
在vue2.0中,在webpack.config.js中配置css文件時(shí),必須要寫全,不能和vue1.0一樣簡(jiǎn)寫
module:{
rules:[ //這里改成了rules
{
test:/\.css$/,
loader:'style-loader!css-loader' //這里必須要寫全,不能和vue1.0一樣簡(jiǎn)寫
}
]
}
6.組件之間的通信從1.0過(guò)渡到2.0時(shí)引發(fā)的錯(cuò)誤:
vue1.0實(shí)現(xiàn)父子組件的通信 -->通過(guò)props屬性-->并且子組件可以更改父組件的數(shù)據(jù) 通過(guò)sync同步
當(dāng)在vue2.0里面不允許直接給父級(jí)數(shù)據(jù)做更改,并且把這個(gè)方法.sync去掉了,
當(dāng)子組件再試圖更改父組件的數(shù)據(jù)時(shí),就會(huì)報(bào)錯(cuò)。
解決方法:
1.$emit()——單一事件管理
經(jīng)常遇到的問(wèn)題是找不到$emit()或$on(),這時(shí)需要單獨(dú)準(zhǔn)備一個(gè)文件Store.js
在文件里面需要:var oEvent =new Vue();
這個(gè)這個(gè)文件里的數(shù)據(jù)一定要導(dǎo)出去才可以使用:export default oEvent
2.對(duì)象之間的引用:(推薦使用)
vue1.0傳數(shù)據(jù):msg:'welcome' -->傳給子級(jí)
vue2.0直接將數(shù)據(jù)定義成對(duì)象json的形式,這樣傳給子級(jí)的數(shù)據(jù)是對(duì)象的屬性,即msg.title
這樣子級(jí)修改父級(jí)的數(shù)據(jù),修改的也是這個(gè)對(duì)象的一個(gè)屬性msg.title
msg:{
title:'welcome'
}
msg.title
7.用vuex用來(lái)管理組件狀態(tài):(增加/減少,顯示/隱藏)
8.axios目前不可以u(píng)se,因?yàn)閍xios里面沒有install這個(gè)方法
使用axios的時(shí)候,可以這樣來(lái)使用:
1.將axios導(dǎo)入文件
import axios from 'axios'
2.將axios放入到Vue實(shí)例上面,這樣在其他組件中,可以直接通過(guò)this.$https.get/post使用
在main.js中寫:Vue.prototype.$http = axios
其他組件可以直接使用:
this.$http.get('data.txt').then((res)=>{
console.log(res.data);
}).catch((err)=>{
console.log(err);
});
10. element.ui表頭點(diǎn)擊事件
使用element.ui之后 @click="" 無(wú)法對(duì)表頭等元素添加點(diǎn)擊事件,正確的寫法應(yīng)該是@click.native=""
11.webpack2.0 插件的配置需要放到 plugins里面進(jìn)行配置,不可放到rules里面進(jìn)行配置
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Vue Router 實(shí)現(xiàn)動(dòng)態(tài)路由和常見問(wèn)題及解決方法
- vue項(xiàng)目中常見問(wèn)題及解決方案(推薦)
- VUE項(xiàng)目初建和常見問(wèn)題總結(jié)
- vue項(xiàng)目前端微信JSAPI與外部H5支付相關(guān)實(shí)現(xiàn)過(guò)程及常見問(wèn)題
- Vue項(xiàng)目開發(fā)常見問(wèn)題和解決方案總結(jié)
- Vue優(yōu)化:常見會(huì)導(dǎo)致內(nèi)存泄漏問(wèn)題及優(yōu)化詳解
- 從零到一詳聊創(chuàng)建Vue工程及遇到的常見問(wèn)題
- vue中常見的問(wèn)題及解決方法總結(jié)(推薦)
相關(guān)文章
vue3+ElementPlus封裝函數(shù)式彈窗組件詳解
這篇文章主要為大家詳細(xì)介紹了如何利用vue3和ElementPlus封裝函數(shù)式彈窗組件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2023-08-08
vue中render函數(shù)和h函數(shù)以及jsx的使用方式
這篇文章主要介紹了vue中render函數(shù)和h函數(shù)以及jsx的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
vue組件實(shí)現(xiàn)移動(dòng)端九宮格轉(zhuǎn)盤抽獎(jiǎng)
這篇文章主要為大家詳細(xì)介紹了vue組件實(shí)現(xiàn)移動(dòng)端九宮格轉(zhuǎn)盤抽獎(jiǎng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-10-10
vue使用GraphVis開發(fā)無(wú)限拓展的關(guān)系圖譜的實(shí)現(xiàn)
本文主要介紹了vue使用GraphVis開發(fā)無(wú)限拓展的關(guān)系圖譜,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
使用vue打包進(jìn)行云服務(wù)器上傳的問(wèn)題
這篇文章主要介紹了使用vue打包進(jìn)行云服務(wù)器上傳,本文給大家介紹的非常詳細(xì),對(duì)大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
基于vue-cli3和element實(shí)現(xiàn)登陸頁(yè)面
這篇文章主要介紹了vue-cli3和element做一個(gè)簡(jiǎn)單的登陸頁(yè)面本文實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11
ElementUI實(shí)現(xiàn)在下拉列表里面進(jìn)行搜索功能詳解
有時(shí)候需要用到下拉列表全選和搜索,下面這篇文章主要給大家介紹了關(guān)于ElementUI實(shí)現(xiàn)在下拉列表里面進(jìn)行搜索功能的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-04-04
vue學(xué)習(xí)之Vue-Router用法實(shí)例分析
這篇文章主要介紹了vue學(xué)習(xí)之Vue-Router用法,結(jié)合實(shí)例形式分析了Vue-Router路由原理與常見操作技巧,需要的朋友可以參考下2020-01-01
vue如何預(yù)覽后端傳來(lái)的二進(jìn)制圖片
這篇文章主要介紹了vue如何預(yù)覽后端傳來(lái)的二進(jìn)制圖片,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06

