运行用VUE中的组件通信,实现简单购物车加购,求其总数

运行用VUE中的组件通信,实现简单购物车加购,求其总数

组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味这不同组件之间的数据无法直接相互引用。
我们可以使用组件之间的通信来实现其功能
首先先从cdn中引入我们所需要的依赖

    <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.min.js"></script>

这里附上HTML代码 test子组件必须要在根组件之内,我们复制三个来代替购物车的物品。

 <div id='app'>
         总数:{{num}}
         <test @max1='max1' @min1='min1'></test>
         <test @max1='max1' @min1='min1'></test>
         <test @max1='max1' @min1='min1'></test>
    </div>

我们来设置一个子组件和一个根组件,test是子组件,我们用根组件中的components属性来接收。
子组件test的data中右count变量来计算单个模块的值,我们在子组件的模版内,设置两个按钮,来进行增减减少的操作,当点击增加时我们通过max方法使其执行count++的操作,减少同理。这样我们就拿到了单个物品的值得算法。
我们如果想让子组件传值给父组件,需要用到this.$emit()方法传值给父组件,我们需要点击max1(min1)的方法,让父组件接收到信息,从而让父组件调用方法,进行总数num的累加(减少)

 let test = {
               template:`
                 <div>
                     数量:{{count}}
                     <button @click='max' @click='max1'>增加</button>
                     <button @click='min' @click='min1'>减少</button>
                 </div>
               `,data(){
               //子组件data必须使用方法形式
                   return {
                       count:0
                   }
               },
               methods:{
                   max(){
                       this.count++ 
                   },
                   min(){
                       this.count--
                   },
                   max1(){
                       this.$emit('max1')
                   },
                    min1(){
                       this.$emit('min1')
                   }
               }
           }
           new Vue({
               el:'#app',
               components:{
                   test
               },
               data:{
                   num:0
               },methods:{
                   max1(){
                       this.num++
                   },
                   min1(){
                       this.num--
                   }
               }

           })
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20201125162343756.png#pic_center)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值