vue中为什么方法要写在methods里面?

74 篇文章 3 订阅

一、methods是什么?

首先先来段代码,我们在template中设定一个按钮,在点击按钮的时候打印

.<template>
  <div>
    <button @click="buttry">测试</button>
  </div>
</template>

<script>
export default {
  methods: {
    buttry() {
      console.log(this);
    },
  },
};
</script>
<style>
</style>

打印出来的结果表明:这个this是当前的单文件的组件实例,并可以拿到组件定义的成员,可以进行相关业务操作.

在这里插入图片描述

二、如果把方法写在data中会怎么样?

.<template>
  <div>
    <button @click="buttry">测试</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      buttry() {
        console.log(this);
      },
    };
  },
  //   methods: {
  //       buttry() {
  //         console.log(this);
  //       },
  //   },
};
</script>
<style>
</style>

得到的结果是null,是空值,代表无法取值,无法进行任何业务处理

在这里插入图片描述

总结:

1.不同调用模式this指向不一样
2.methodsdata等就类似家里的柜子,不用的柜子盛放不同的物品,就代表每个柜子的功能不一样,但地位相同。
data:变量
methods:自定义变量
computed:计算属性
watch:监听器
directives:指令
filters:过滤器
3.只有methods里面才可以拿到组件,才可以进行业务处理

  • 11
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值