computed和watch的区别

computed能监听v-moderl的值,只要值发生变化 他就会重新去计算,并且必须要有返回值,用return来返回
computed当你需要双向的时候,这时候就需要用到get和set了,get的作用是返回当前的值,set监视当前的属性值的变化,当值发生变化时,更新数据。

  <template>
	  <div class="hello">
	    姓:<input type="text" v-model="firstName" placeholder="">
	    名:<input type="text" v-model="lastName" placeholder="">
	    姓名1(单项)<input type="text" v-model="fullName1" placeholder="">
	    姓名2(单项)<input type="text" v-model="fullName2" placeholder="">
	    姓名3(双向)<input type="text" v-model="fullName3" placeholder="">
	  </div>
	</template>
	
	<script>
	export default {
	  name: 'HelloWorld',
	  data () {
	    return {
	      firstName: ' ',
	      lastName: '',
	      fullName2: ''
	    }
	  },
	  computed: {
	    fullName1 () {
	      return this.firstName + ' ' + this.lastName
	    },
	    fullName3: {
	      get () {
	        return this.firstName + ' ' + this.lastName
	      },
	      set (value) {
	        const names = value.split(' ')
	        this.firstName = names[0]
	        this.lastName = names[1]
	      }
	    }
	  },
	  watch: {
	    firstName: function (value) {
	      this.fullName2 = value + ' ' + this.lastName
	    }
	  }
}

watch不仅能监听data里边的值,并且还能监听路由,watch的回调函数里边有2个参数,一个新的返回值newval和旧的返回值oldval

     var vm = new Vue({
        el: "#app",
		data:{
        },
        methods: {

        },
        router: router,
        watch: {
            "$route.path":function(newval,oldval){
            if(newval==="/login"){
                console.log("这是denglu页面")
            }else if(newval==="/zhuce"){
                console.log("这是注册页面")

            }
            }
        },

    })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值