vue 多种方法实现名字拼接

第一种:v-modal绑定 绑定keyup事件 实时更新

<div>
      <input type="text" v-model="firstName" @keyup="getfullName"> +
      <input type="text" v-model="lastName" @keyup="getfullName"> =
      <input type="text" v-model="fullName">
</div>
<script>
export default {
  data () {
    return {
      firstName: " ",
      lastName: " ",
      fullName: " "
    }
  },
  methods:{
    getfullName(){
      this.fullName = this.firstName + this.lastName;
    }
  }
}
</script>

 

第二种:watch监听

<div>
      <input type="text" v-model="firstName"> +
      <input type="text" v-model="lastName"> =
      <input type="text" v-model="fullName">
 </div>
<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      firstName: " ",
      lastName: " ",
      fullName: " "
    }
  },
  watch:{
    firstName(){
       this.fullName = this.firstName + this.lastName;
    },
    lastName(){
       this.fullName = this.firstName + this.lastName;
    }
  }
}
</script>

watch 会监视 data 中指定的数据,当这些数据发生变动的时候会触发对应的 function来处理相关的业务。

第三种: computed计算属性

<div>
      <input type="text" v-model="firstName"> +
      <input type="text" v-model="lastName"> =
      <input type="text" v-model="fullName">
 </div>
<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      firstName: " ",
      lastName: " ",
    }
  },
  
  computed:{
    fullName(){
      return this.firstName + this.lastName;
    }
  }
 
}
</script>

在 computed 中,可以定义一些 属性,这些属性,叫做 计算属性, 计算属性的本质,就是 一个方法,只不过,我们在使用 这些计算属性的时候,是把 它们的 名称,直接当作 属性来使用的;并不会把计算属性,当作方法去调用;

计算属性,在引用的时候,一定不要加 () 去调用,直接把它 当作 普通 属性去使用就好了;
只要 计算属性,这个 function 内部,所用到的 任何 data 中的数据发送了变化,就会 立即重新计算 这个 计算属性的值
计算属性的求值结果,会被缓存起来,方便下次直接使用; 如果 计算属性方法中,所以来的任何数据,都没有发生过变化,则不会重新对 计算属性求值;
---------------------
版权声明:本文为CSDN博主「波波烤鸭」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_38526573/article/details/98762857

 

posted @ 2019-08-08 17:52  氧化成风  阅读(1929)  评论(0编辑  收藏  举报