Vue-基础-子组件向父组件传递值

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <!--引入vue的js文件-->
  <script src="js/vue-2.6.10.js"></script>
  <!--引入axios的js文件-->
  <script src="js/axios.min.js"></script>
</head>
<body>
      <div id="root">
          <h2>num = {{num}} </h2>
          <!--子组件的++ &#45;&#45; 方法绑定父组件的++ &#45;&#45; 方法-->
        <counter :snum="num" @plus="numPlus" @reduce="numReduce"></counter>
      </div>
</body>
</html>
<script>
  // 定义组件
  // 子组件接收到父组件属性后,默认是不允许修改的
  // 那么加和减的操作一定是放在父组件
  let counter = Vue.extend({
        template:`<div>
           <button @click="innum">+</button>
           <button @click="denum">--</button>
        </div>`,
      // 定义子组件的++ -- 方法
      methods:{
          // 这里是不能直接绑定父组件的numPlus方法的,因为这个innum是在子组件当中,
          // 无法读取到numPlus,所以要中间值去转绑定
          innum(){
              // 调用父组件++ --方法
              this.$emit("plus");
          },
          denum(){
              // 调用父组件++ --方法
              this.$emit("reduce");
          },

      },

        props:["snum"]
  });
  // 2 注册组件
  Vue.component("counter",counter);
  // 3. 使用组件
  new Vue({
    el:"#root",
    data:{
        num:50
    },
      // 定义父组件的++ -- 方法
      methods:{
        numPlus(){
            this.num++;
        },
        numReduce(){
            this.num--;
        }
      }
  });
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值