Vue实例常用的4个选项

我们都知道,定义一个Vue实例的参数选项除了有el(指定挂载的DOM元素)、data(实例的数据)之外,还可以定义其他的参数。

今天我们讲Vue实例常用的4个参数选项:filters(过滤器)、computed(计算属性)、methods(方法)、watch(观察)

1、filters(过滤器)

第一个要讲的就是过滤器filters选项,那么为什么要有这个东西呢?首先,我们举个例子,假设我们有一组数字,并且都是小数,如下:

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      number1: 3.1415,
      number2:31.415,
      number3:314.15
    }
  }
}
</script>

number1、number2、number3都是Vue实例的小数,我们把它展示在视图上:

<template>
  <div class="hello">
    <div> 数字1:{{ number1 }}</div>
    <div> 数字2:{{ number2 }}</div>
    <div> 数字3:{{ number3 }}</div>
  </div>
</template>

那么,现在突然改需求了,我们不能把小数展示出来,需要把小数转换成整数再显示。

这个时候我们需要把三个小数经过过滤处理后再展示,不能直接展示。这种情况我们就需要用到Vue的filters过滤器了。

下面我们来看看怎么用:

<template>
  <div class="hello">
    <div> 数字1:{{ number1|toInt }}</div>
    <div> 数字2:{{ number2|toInt }}</div>
    <div> 数字3:{{ number3|toInt }}</div>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      number1: 3.1415,
      number2: 31.415,
      number3: 314.15
    }
  },
  //过滤器
  filters:{
    toInt(val){
      return parseInt(val);
    }
  }
}
</script>

ffilters属性,它的值是一个对象,里面定义了一个叫toInt()的方法,传入了一个val的参数,函数的作用就是把传入的参数val,简单地转成一个整数并return回去;

接着我们通过管道符' | '把函数toInt放在变量后面即可,number1、number2、number3会分别作为参数val传入toInt(val)方法进行运算,并返回一个整数。

运行后,得到结果如下:

根据结果可以看出,成功过滤转换成整数。

2、computed(计算属性)

有时候,我们拿到一些数据,需要经过处理计算后得到的结果,才是我们要展示的内容。
比如:我们有三个数,但是需要展示的是三个数字之和。这种情况,就适合用我们的计算属性computed。

计算属性 computed 的定义语法和过滤器 filters类似,但是用法不一,如下:

<template>
  <div class="hello">
    <div> 总和:{{ sum }}</div>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      number1: 3.1415,
      number2: 31.415,
      number3: 314.15
    }
  },
  //计算属性
  computed:{
    sum(){
      return this.number1+this.number2+this.number3;
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>

</style>

 

3、methods(方法)

顾名思义,在methods中,我们可以定义一些方法,供组件使用。
比如,我们定义一个数据msg,当用户点击按钮的时候,msg的值加1。这种情况,我们可以利用methods 来实现。

定义一个plus()的方法在methods中,下面我们把plus()绑定在按钮的点击事件上。
在 Vue 中通过v-on:指令来绑定事件,我们点击按钮,methods中的方法plus()就会被调用,实现给msg的值加1,并更新视图。

<template>
  <div class="hello">
    <div>{{ msg }}</div>
    <button @click="plus">加1</button>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      msg: 0
    }
  },
  //方法
  methods: {
    plus() {
      return this.msg++;
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>

</style>

 

4、watch(观察)

watch 选项是 Vue 提供的用于检测指定的数据发生改变的api。
上面点击按钮msg的值加1的例子,不就是数据发生变化了吗?我们就用watch 选项来监听数字msg是否发生了变化,如果监听到了变化,我们就在控制台输入msg的最新值。
在上个例子的代码基础上,我们加上watch 部分的代码:

<template>
  <div class="hello">
    <div>{{ msg }}</div>
    <button @click="plus">加1</button>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data() {
    return {
      msg: 0
    }
  },
  //方法
  methods: {
    plus() {
      return this.msg++;
    }
  },
  //观察
  watch: {
    msg() {
       console.log('有变化了,最新值:');
       console.log(this.msg);
    }
  }
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>

</style>

最后一部分watch就是我们新加的代码,msg()表示我们要观察监听的就是数据msg,我们看运行结果:

看到了,我们点击按钮的时候,msg的值加1发生了变化,而此时watch监听到了它的变化,便在控制台输出了我们指定的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端报刊

谢谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值