vue使用技巧及vue項(xiàng)目中遇到的問題
這里給大家分享一下vue中的一些技巧,希望對(duì)大家有用處。(話不多說上代碼)
1,vue路由攔截瀏覽器后退實(shí)現(xiàn)表單保存類似需求(為了防止用戶突然離開,沒有保存已輸入的信息。)
//在路由組件中:
mounted(){
},
beforeRouteLeave (to, from, next) {
if(用戶已經(jīng)輸入信息){
//出現(xiàn)彈窗提醒保存表單,或者自動(dòng)后臺(tái)為其保存
}else{
next(true);//用戶離開
}
請(qǐng)參考vue文檔全局鉤子和組件鉤子
2,路由懶加載寫法:
// 我所采用的方法,個(gè)人感覺比較簡(jiǎn)潔一些,少了一步引入賦值。
const router = new VueRouter({
routes: [
path: '/app',
component: () => import('./app'), // 引入組件
]
})
// Vue路由文檔的寫法:
const app = () => import('./app.vue') // 引入組件
const router = new VueRouter({
routes: [
{ path: '/app', component: app }
]
})
3,路由的項(xiàng)目啟動(dòng)頁(yè)和404頁(yè)面
一般項(xiàng)目都會(huì)設(shè)置這個(gè),如果默認(rèn)進(jìn)入地址會(huì)跳到login頁(yè)面,如果你輸入的是一個(gè)沒有用的路由或者是空路由會(huì)跳轉(zhuǎn)到notFind頁(yè)面(你自己設(shè)置的404頁(yè)面)
export default new Router({
routes: [
{
path: '/', // 項(xiàng)目啟動(dòng)頁(yè)
redirect:'/login' // 重定向到下方聲明的路由
},
{
path: '*', // 404 頁(yè)面
component: () => import('./notFind') // 或者使用component也可以的
},
]
})
4,setInterval路由跳轉(zhuǎn)繼續(xù)運(yùn)行并沒有銷毀問題
beforeDestroy(){
//我通常是把setInterval()定時(shí)器賦值給this實(shí)例,然后就可以像下面這么暫停。
clearInterval(this.intervalid);
},
beforeDestroy方法是生命周期里組件銷毀前執(zhí)行的鉤子函數(shù),在離開的時(shí)候會(huì)觸發(fā)這個(gè)方法,這個(gè)方法在其他的地方也會(huì)有妙用,希望大家可以去了解一下。
5,setTimeout/setInterval this指向改變,無法用this訪問VUe實(shí)例
這個(gè)地方大家的默認(rèn)方法肯定是:
//使用變量訪問this實(shí)例
let self=this;
setTimeout(function () {
console.log(self);//使用self變量訪問this實(shí)例
},1000);
其實(shí)這個(gè)地方我們可以用箭頭函數(shù),因?yàn)榧^函數(shù)會(huì)改變this的指向,而指向的剛好是自己的父級(jí)this,所以我們可以這樣用:
//箭頭函數(shù)訪問this實(shí)例 因?yàn)榧^函數(shù)本身沒有綁定this
setTimeout(() => {
console.log(this);
}, 500);
這樣我們的this就是指向我們的vue實(shí)例了。
6,Vue 數(shù)組/對(duì)象更新 視圖不更新
方法一:直接使用最簡(jiǎn)單也是最有效的方法,深拷貝對(duì)象或者數(shù)組,視圖會(huì)進(jìn)行更新,不過會(huì)有一個(gè)缺點(diǎn),深拷貝后的數(shù)組或者對(duì)象不是原來的那個(gè)數(shù)組或者對(duì)象,是你現(xiàn)在改變了之后的值。
上代碼:
你的對(duì)象或者數(shù)組=JSON.parse(JSON.stringify(你的對(duì)象或者數(shù)組))
先進(jìn)行轉(zhuǎn)字符串,再轉(zhuǎn)回對(duì)象,這個(gè)就進(jìn)行了一個(gè)拷貝的過程,會(huì)觸發(fā)視圖的改變,同時(shí)也進(jìn)行了一個(gè)數(shù)組的替換,有利有弊。
方法二:this.$set(你要改變的數(shù)組/對(duì)象,你要改變的位置/key,你要改成什么value)
this.$set(this.arr, 0, "OBKoro1"); // 改變數(shù)組 this.$set(this.obj, "c", "OBKoro1"); // 改變對(duì)象
這個(gè)是vue專門為改變不了數(shù)組設(shè)定的一個(gè)方法,使用也很簡(jiǎn)單(如果還是不懂請(qǐng)參考vue文檔)
7,深度watch與watch立即觸發(fā)回調(diào)
watch很多人都在用,但是這watch中的這兩個(gè)選項(xiàng)deep、immediate,或許不是很多人都知道,我猜。
選項(xiàng):deep
在選項(xiàng)參數(shù)中指定 deep: true,可以監(jiān)聽對(duì)象中屬性的變化。
選項(xiàng):immediate
在選項(xiàng)參數(shù)中指定 immediate: true, 將立即以表達(dá)式的當(dāng)前值觸發(fā)回調(diào),也就是默認(rèn)觸發(fā)一次。
watch: {
obj: {
handler(val, oldVal) {
console.log('屬性發(fā)生變化觸發(fā)這個(gè)回調(diào)',val, oldVal);
},
deep: true // 監(jiān)聽這個(gè)對(duì)象中的每一個(gè)屬性變化
},
step: { // 屬性
//watch
handler(val, oldVal) {
console.log("默認(rèn)觸發(fā)一次", val, oldVal);
},
immediate: true // 默認(rèn)觸發(fā)一次
},
},
總結(jié)
以上所述是小編給大家介紹的vue使用技巧及vue項(xiàng)目中遇到的問題,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
vue實(shí)現(xiàn)移動(dòng)端項(xiàng)目多行文本溢出省略
這篇文章主要介紹了vue實(shí)現(xiàn)移動(dòng)端項(xiàng)目多行文本溢出省略功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-07-07
vue內(nèi)嵌iframe跨域通信的實(shí)例代碼
這篇文章主要介紹了vue內(nèi)嵌iframe跨域通信,主要介紹了Vue組件中如何引入iframe,vue如何獲取iframe對(duì)象以及iframe內(nèi)的window對(duì)象,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì)需要的朋友可以參考下2022-11-11
詳解vuex 中的 state 在組件中如何監(jiān)聽
本篇文章主要介紹了詳解vuex 中的 state 在組件中如何監(jiān)聽,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-05-05
Vue中img的src是動(dòng)態(tài)渲染時(shí)不顯示的解決
今天小編就為大家分享一篇Vue中img的src是動(dòng)態(tài)渲染時(shí)不顯示的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
使用vue3實(shí)現(xiàn)簡(jiǎn)單的滑塊組件
這篇文章主要給大家介紹一下如何使用vue3實(shí)現(xiàn)簡(jiǎn)單的滑塊組件,文中有詳細(xì)的代碼示例講解,具有一定的參考價(jià)值,感興趣的小伙伴跟著小編一起來看看吧2023-08-08
Vue+Element一步步實(shí)現(xiàn)動(dòng)態(tài)添加Input_輸入框案例
這篇文章主要介紹了Vue+Element一步步實(shí)現(xiàn)動(dòng)態(tài)添加Input_輸入框案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
vue路由導(dǎo)航守衛(wèi)和請(qǐng)求攔截以及基于node的token認(rèn)證的方法
這篇文章主要介紹了vue路由導(dǎo)航守衛(wèi)和請(qǐng)求攔截以及基于node的token認(rèn)證的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04
vuex通過getters訪問數(shù)據(jù)為undefined問題及解決
這篇文章主要介紹了vuex通過getters訪問數(shù)據(jù)為undefined問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08

