Vue(八):监听属性watch

Vue.js 可以通过 watch 来响应数据的变化。

以下实例模拟购物车里商品数量增加,对应价格也增加

       <!--模拟购物车商品数量增加,价格也随之增加-->       <div id = "app">

         <h3>Search Goods</h3>
         <input type=‘goodsname‘ v-model="goodsname" />
         <br><br>
         <table border=1>
            <tr>
                <th>goodsname</th>
                <th>spnums</th>
            </tr>
            <tr>
                <td>{{goodsname}}</td>
                <td>{{spnums}}</td>
            </tr>
         </table>

         <hr>

         <p style="color:red">{{msg}}</p>

         <h3>Shopping Cart</h3>
         <p>apple: {{ num }} </p>
         <p>price: {{ price }}</p>
         <button @click = "num++" >add apple num</button>
        </div>
        <script type = "text/javascript">
         var randomnum = Math.floor(Math.random()*100);
         var vm = new Vue({
            el: ‘#app‘,
            data: {
               num: randomnum,
               price:156,
               msg:‘‘,
               goodsname:‘‘,
               spnums:randomnum
            },
            watch:{
                goodsname:function(val){
                    if(val==‘a‘ || val==‘ap‘ || val==‘app‘ || val==‘appl‘
                       || val==‘apple‘){
                        this.goodsname=‘apple‘;
                    }else{
                        alert(‘no result!‘);
                    }
                }
            }
         });      // $watch是一个实例方法
         vm.$watch(‘num‘, function(nval, oval) {
             this.spnums--;
             this.msg="cart apple num add,from "+oval+" to "+nval+",so price change to "+(this.price+=10)
         });
        </script>

原文地址:https://www.cnblogs.com/shamo89/p/10217051.html

时间: 2024-08-04 20:03:59

Vue(八):监听属性watch的相关文章

9.Vue.js 监听属性

本章节,我们将为大家介绍 Vue.js 监听属性 watch,我们可以通过 watch 来响应数据的变化. 以下实例通过使用 watch 实现计数器: <div id = "app"> <p style = "font-size:25px;">计数器: {{ counter }}</p> <button @click = "counter++" style = "font-size:25px;&

vue(七)--监听属性(watch)

1.watch:用来监听每一个属性的变化 2.watch这个对象里面都是函数,函数的名称是data中的属性名称,watch中的函数不需要调用 3.当属性发生改变那么就会触发watch函数,每个函数都会接受两个值,一个是新值,一个是旧值 4.我们可以在watch当中就行新旧值的判断来减少虚拟dom的渲染 eg: watch:{ a(newVal,oldVal){ if(newVal != oldVal){ this.sum = newVal+this.b; } console.log("a发生了改

怎样使用 Vue 的监听属性 watch ?

需求: 我需要在某个数据变化时能够执行特定的动作, 比如我在输入框中输入数字 88, 系统检测到以后就会弹窗 拜拜 , 而输入其他字符则不会触发, 这种需求简直多入牛毛, 实际上这就是 自定义事件 , 和 点击 / 按下 / 滚动 这种事件是一样的, 都是符合条件以后就执行特定代码. 在 vue 里面, 这个功能需要使用 watch. <!DOCTYPE html> <html lang="en"> <head> <meta charset=&

Vue计算属性和监听属性

一.计算属性 计算属性关键词: computed.计算属性在处理一些复杂逻辑时是很有用的. 可以看下以下反转字符串的例子: <div id="app"> {{ message.split('').reverse().join('') }} </div> //模板变的很复杂起来,也不容易看懂理解 使用了计算属性的实例: <div id="app"> <p>原始字符串: {{ message }}</p> &l

实例成员:计算属性 监听属性以及vue的项目开发

6)字符串补充 双引号: "前缀" + 变量 + "后缀" 单引号: '前缀' + 变量 + '后缀' 反引号: `前缀$(变量)后缀` ps:在反引号中可以用$()来包裹变量,实现字符串的拼接 7)实例成员:计算属性 监听属性 计算属性: ? 1)计算属性其实就是vue中的方法属性,方法名可以作为属性来使用,属性值就是方法的返回值 ? 2) 在computed中声明的方法属性,不能在data中重复声明,比data中声明的属性要多出些逻辑的的地方 ? 3)方法属性自

vue监听属性完成首字母大小写转换

监听属性 watch 侦听属性的作用是侦听某属性值的变化,从而做相应的操作,侦听属性是一个对象,它的键是要监听的对象或者变量,值一般是函数,当你侦听的元素发生变化时,需要执行的函数,这个函数有两个形参,第一个是当前值,第二个是变化后的值. 代码实现: 效果图: 原文地址:https://www.cnblogs.com/onerose/p/10099031.html

09.VUE学习之watch监听属性变化实现类百度搜索栏功能ajax异步请求数据

cmd下安装axios npm install axios 安装好后,会多出node_modules文件夹 思路: 监听data里的word改变时,发送ajax异步请求数据, 把返回的数据赋值给data里的result,再传给模板里 9.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible&qu

表单、条件、循环指令,分隔符,前端数据库,过滤器,计算属性,监听属性,冒泡排序

目录 一. 表单指令 1. v-model = "变量" (1)普通input框 (2)单选input框 (3)单一复选input框 (4)多复选input框 2. 实例 二.条件指令 1. v-show="布尔变量" 2. v-if="布尔变量" 3. v-if v-else-if v-else 4. 实例 三.循环指令 1. v-for="变量 in 可迭代对象" (1)遍历字符串或数组 (2)遍历对象(字典) 2. 实例

uni-app三目运算 uni-app监听属性

三目运算 <text>{{mag>10 ? '优秀' : ""}}</text> 三目运算的高级用法 大于1000用kg表示 小于1000,用g表示 添加括号是因为提高他的优先级哈 <text>{{weight > 1000 ? (weight/1000)+"kg" : weight}}</text> uni-app监听属性 跟vue是一样的哈 点击[页面主操作 Normal] 就会触法watch监听的这个

属性观察者(监听属性的变化)

// 属性观察者, 用于监听属性变化, 在属性变化的时候调用 class Person { var name: String = "" { // 也可以写成willSet{}, 系统默认会传入一个名为newValue的参数 willSet(newValue) { print("name这个属性将被修改了, \(newValue)") } // 也可以写成didSet{} didSet(newValue) { print("name这个属性已经被修改了, \