vue.js購(gòu)物車(chē)添加商品組件的方法
現(xiàn)實(shí)向購(gòu)物車(chē)添加商品組件
代碼
<template> <div class="cartcontrol"> <!--商品減一區(qū)域--> <div class="reduce" v-show="food.count>0"> <i class="icon-remove_circle_outline"></i> </div> <!--商品數(shù)量區(qū)域--> <div class="num" v-show="food.count>0">4</div> <!--商品加一區(qū)域--> <div class="add" @click="addCart"> <i class="icon-add_circle"></i> </div> </div> </template>
<script>
export default {
name: "Cartcontrol",
props:{
food:{
type:Object
}
},
methods:{
//添加購(gòu)物車(chē)商品數(shù)量
addCart(ele){
if(!ele._constructed){
//better-scroll的派發(fā)事件scroll的event和pc端瀏覽器的點(diǎn)擊事件的event有個(gè)
// 屬性區(qū)別_constructed,pc端瀏覽器的點(diǎn)擊事件的event中是沒(méi)有這個(gè)屬性的
return;
}
//一開(kāi)始food中是沒(méi)有商品數(shù)量count
if(!this.food.count){
// this.food.count = 1;count不是food對(duì)象中的屬性,直接這樣寫(xiě),在dom渲染的時(shí)候是無(wú)法感應(yīng)到count的變化
this.$set(this.food,'count',1);
}else{
this.food.count++;
}
console.log(this.food.count);
}
}
}
</script>
<style scoped lang="stylus"> .cartcontrol display flex height .48rem align-items center .num font-size.2rem width .48rem text-align center color rgb(147,153,159) .reduce,.add font-size .4rem color rgb(0,160,220) </style>
對(duì)象中添加新的屬性,如果更新此屬性的值,是不會(huì)更新視圖的
addCart(ele){
if(!ele._constructed){
//better-scroll的派發(fā)事件scroll的event和pc端瀏覽器的點(diǎn)擊事件的event有個(gè)
// 屬性區(qū)別_constructed,pc端瀏覽器的點(diǎn)擊事件的event中是沒(méi)有這個(gè)屬性的
return;
}
//一開(kāi)始food中是沒(méi)有商品數(shù)量count
if(!this.food.count){
this.food.count = 1;count不是food對(duì)象中的屬性,直接向food添加新屬性count,
// 當(dāng)count值發(fā)生變化的時(shí)候在dom渲染的時(shí)候是無(wú)法感應(yīng)到count的變化
}else{
this.food.count++;
}
console.log(this.food.count);
}
解決方法:使用$set可以觸發(fā)更新視圖,這樣當(dāng)count發(fā)生變化的時(shí)候,$set去觸發(fā)更新視圖 addCart(ele){
if(!ele._constructed){
//better-scroll的派發(fā)事件scroll的event和pc端瀏覽器的點(diǎn)擊事件的event有個(gè)
// 屬性區(qū)別_constructed,pc端瀏覽器的點(diǎn)擊事件的event中是沒(méi)有這個(gè)屬性的
return;
}
//一開(kāi)始food中是沒(méi)有商品數(shù)量count
if(!this.food.count){
// this.food.count = 1;count不是food對(duì)象中的屬性,直接向food添加新屬性count,
// 當(dāng)count值發(fā)生變化的時(shí)候在dom渲染的時(shí)候是無(wú)法感應(yīng)到count的變化
this.$set(this.food,'count',1);
}else{
this.food.count++;
}
console.log(this.food.count);
}
總結(jié)
以上所述是小編給大家介紹的vue.js購(gòu)物車(chē)添加商品組件的實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
- vue實(shí)現(xiàn)購(gòu)物車(chē)功能(商品分類(lèi))
- Vue+Node實(shí)現(xiàn)商品列表的分頁(yè)、排序、篩選,添加購(gòu)物車(chē)功能詳解
- Vue實(shí)現(xiàn)商品飛入購(gòu)物車(chē)效果(電商項(xiàng)目)
- Vue商品控件與購(gòu)物車(chē)聯(lián)動(dòng)效果的實(shí)例代碼
- Vue實(shí)現(xiàn)購(gòu)物車(chē)的全選、單選、顯示商品價(jià)格代碼實(shí)例
- vue+vant實(shí)現(xiàn)購(gòu)物車(chē)全選和反選功能
- vue+vant-UI框架實(shí)現(xiàn)購(gòu)物車(chē)的復(fù)選框全選和反選功能
- 基于Vuejs實(shí)現(xiàn)購(gòu)物車(chē)功能
- vue實(shí)現(xiàn)購(gòu)物車(chē)小案例
- vue實(shí)現(xiàn)商品購(gòu)物車(chē)全選反選
相關(guān)文章
vue 監(jiān)聽(tīng)屏幕高度的實(shí)例
今天小編就為大家分享一篇vue 監(jiān)聽(tīng)屏幕高度的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09
vue實(shí)現(xiàn)高德地圖添加多個(gè)點(diǎn)標(biāo)記
地圖多點(diǎn)標(biāo)注其實(shí)是個(gè)非常簡(jiǎn)單的問(wèn)題,這篇文章主要給大家介紹了關(guān)于vue實(shí)現(xiàn)高德地圖添加多個(gè)點(diǎn)標(biāo)記的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
vue2.0實(shí)現(xiàn)音樂(lè)/視頻播放進(jìn)度條組件
這篇文章主要為大家詳細(xì)介紹了vue2.0實(shí)現(xiàn)音樂(lè)和視頻播放進(jìn)度條組件的思路及具體實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
vue中使用 pako.js 解密 gzip加密字符串的方法
這篇文章主要介紹了vue項(xiàng)目中 使用 pako.js 解密 gzip加密字符串 的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-06-06
詳解vue使用vue-layer-mobile組件實(shí)現(xiàn)toast,loading效果
這篇文章主要介紹了詳解vue使用vue-layer-mobile組件實(shí)現(xiàn)toast,loading效果,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08

