vue 中的watch 和 computed

watch :

Watch属性可以监视 data 中指定数据的变化,一旦被监听的数据值发生了改变,就会立即触发watch对应的 function处理函数:

<template>
     <div>
        <input type="text" v-model="firstname" /> +
         <input type="text" v-model="lastname" /> =
        <input type="text" v-model="fullname" />
     </div>
</template>
export default {
    data(){
        return{
            firstname:"",
             lastname:"",
             fullname:""
      }
},
 watch:{
        //newVal:最新数据;
        //oldVal:上一次数据
        "firstname":function(newVal,oldVal){
                 this.fullname = newVal+"-"+this.lastname;
         },
        "lastname":function(newVal){
                this.fullname = this.firstname+"-"+newVal;
        }
    }
};

使用watch属性监听路由地址:

入口js文件的vue实例上添加watch属性 监听$route.path,只要地址栏中的url发生了改变,就会被监听到

var vm = new Vue({
        el: "#app",
        render: c => c(App4),
        router:routerObj,
         watch: {
                 "$route.path": function(newVal, oldVal) {
                        console.log(newVal + ' --- ' + oldVal);
                 }
        }
})

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

计算属性computed定义的属性不需要在data中声明

计算属性指向的function内部,所用到的data中的任何数据发生了变化,就会立即触发function,重新计算 这个属性的值

export default {
    data() {
        return {
            firstname: "",
             lastname: "“
         };
    },
    computed: {
        fullname: function() {
                return this.firstname + "-" + this.lastname;
        }
     }
};

1:计算属性的求值结 果,会被缓存起来, 方便下次直接使用,提 高运算效率
2: fullname在data中 不能定义
3: 只要firstname或者 lastnama发生了改变, funciton会立即触发执行。

原文地址:https://www.cnblogs.com/panghu123/p/11735947.html

时间: 2024-11-04 09:48:26

vue 中的watch 和 computed的相关文章

怎样理解 Vue 中的计算属性 computed 和 methods ?

需求: 在 Vue 中, 我们可以像下面这样通过在 引号 或 双花括号 内写 js 表达式去做一些简单运算, 这是可以的, 不过这样写是不直观的, 而且在 html 中 夹杂 一些运算逻辑这种做法其实并不好. 最理想的情况是: html 只负责展示, 绑定的数据都是 赤裸裸 的 变量, 而非 表达式 , 这样就会比较人性化. 想要达到这种效果可以有两种方法: computed 和 methods. 1. 使用 methods 相当于是为这个 字符串倒序 的功能单独写了一个函数, 这个函数在 Vu

vue中methods、computed、watch区别

vue中methods.computed.watch区别methods:事件调用的钩子 computed:{ // 计算属性是根据他依赖的值计算的,当依赖值发生变化,其跟着改变 // 计算属性是依赖缓存} watch: { // watch 和 computed 区别: // watch 强调的是 观测某个状态,根据状态的改变而做事情 // 而computed 强调的是 根据状态返回一个新的状态} 原文地址:https://www.cnblogs.com/houjl/p/10127451.htm

vue中computed计算属性与methods对象中的this指针

this 指针问题 methods与computed中的this指针 应该指向的是它们自己,可是为什么this指针却可以访问data对象中的成员呢? 因为new Vue对象实例化后data中的成员和computed中的成员为实现化对象属性了,而methods中定义的方法为实现化对象方法了.这时this指针指向的是这个实现化对象. let v = new Vue({ el: '.test', data: { title: "121213" }, methods: { msg() { al

对vue中的computed属性,watch监听,计算属性理解

自己的理解: computed用来监控自己定义的变量,该变量不在data里面声明,直接在computed里面定义,然后就可以在页面上进行双向数据绑定展示出结果或者用作其他处理: computed比较适合对多个变量或者对象进行处理后返回一个结果值,也就是数多个变量中的某一个值发生了变化则我们监控的这个值也就会发生变化,举例:购物车里面的商品列表和总金额之间的关系,只要商品列表里面的商品数量发生变化,或减少或增多或删除商品,总金额都应该发生变化.这里的这个总金额使用computed属性来进行计算是最

vue03----生命周期、nextTick()、ref、filter、computed、vue中异步请求渲染问题(swiper不轮播)(在开发过程中遇到什么问题、踩过的坑)

### 1.vue的组件和实例都有生命周期,而且是一样的 生命周期:(组件从创建到销毁的过程) 创建 挂载 更新 销毁 组件到达某一个阶段就会自动触发某一些函数,这个函数就叫生命周期的钩子函数. 创建:组件创建的时候触发 beforeCreate created     组件刚创建的数据请求 挂载:创建完成挂载前后触发 beforeMount mounted     DOM的初始化操作 更新:数据发生改变的时候触发 beforeUpdate updated     数据的变化监听,尽量不要在这里

vue中watch的使用

vue中watch的使用 vue中的watch是一个比较重要的概念,通过他我们可以检测data的变化,下面进行详细的介绍. watch定义方式如下: {[key: string]: string | Function | Object } 即在watch中, 键是一个字符串,它是被观测的对象. 值可以是一个字符串,这个字符串是方法名. 值还可以是一个函数,但不能使用箭头函数的形式,this会出现问题. 值也可以是一个对象,其中包含回调函数可以其他一些选项:比如是否深度遍历. 举例如下: <!DO

Vue中状态管理——Vuex

vuex是一个专门为vue.js设计的状态管理模式,并且也可以使用devtools进行调试. 在vuex出现之前,vue里面的状态是属于'单向数据流'.举个官网的例子: new Vue({ // state data () { return { count: 0 } }, // view template: `<div>{{ count }} </div`, // actions methods: { increment () { this.count++ } } }) 其中 state

vue中$watch源码阅读笔记

项目中使用了vue,一直在比较computed和$watch的使用场景,今天周末抽时间看了下vue中$watch的源码部分,也查阅了一些别人的文章,暂时把自己的笔记记录于此,供以后查阅: 实现一个简单的$watch: 1 const v = new Vue({ 2 data:{ 3 a: 1, 4 b: { 5 c: 3 6 } 7 } 8 }) 9 // 实例方法$watch,监听属性"a" 10 v.$watch("a",()=>console.log(&

vue中使用BetterScroll(网上)

原文链接 BetterScroll 是一款重点解决移动端各种滚动场景需求的开源插件(GitHub地址),有下列功能支持滚动列表,下拉刷新,上拉刷新,轮播图,slider等功能.为了满足这些功能,better-scroll通过使用惯性滚动.边界回弹.滚动条淡入淡出来确保滚动的流畅.同时还支持很多API和事件,具体支持的事件可以查看官网讲的非常详细.由于它基于原生JavaScript 实现,不依赖任何框架,所以既可以原生 JavaScript 引用,也可以与目前前端 MVVM 框架结合使用,比如,其