Vue中监测数据变化

Vue中使用keyup

<el-form-item label="姓名:" prop="name">
        <el-input
          type="text"
          v-model="userInfo.name"
          autocomplete="off"
          @keyup.native="changeUserInformation"
        ></el-input>
      </el-form-item>

注意:在element-ui中需要@keyup.native,在普通的input中只需要 @keyup=“changeUserInformation”
在script中

  methods: {
    changeUserInformation(){
    	console.log("数据发生了变化1")
        this.changeInformation = true;
    },

关于Vue中keyup的补充:

事件代码事件描述
@keyup.enter回车按键松开触发
@keyup.left左键按键松开触发
@keyup.right右键按键松开触发
@keyup.up上键按键松开触发
@keyup.down下键按键松开触发
@keyup.delete删除键松开触发

其他监测数据变化方式:

  1. vue中提供了watch方法,它用于观察vue实列上的数据变动,来响应数据的变化。注意这种方法对我没有用处!因为我的是userInfo.name,如果v-model="userInfo"可能就能使用了(不过我没试过!);watch主要用于监控vue实例的变化,它监控的变量当然必须在data里面声明才可以,它可以监控一个变量,也可以是一个对象
data(){
        return {
          example0:"",
          example1:"",
      }
    },
watch:{
 example0(newVal,oldVal){//监控单个变量
           ……
   }example2(newVal,oldVal){//监控对象
           ……
   }}
  1. computed用来监控自己定义的变量,该变量不在data里面声明,直接在computed里面定义。
<div id="example">
  <p>Original message: "{{ message }}"</p>
  <p>Computed reversed message: "{{ reversedMessage }}"</p>
</div>
computed: {
    // 计算属性的 getter
    reversedMessage: function () {
      // `this` 指向 vm 实例
      return this.message.split('').reverse().join('')
    }
  }

计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。这就意味着只要 message 还没有发生改变,多次访问 reversedMessage 计算属性会立即返回之前的计算结果,而不必再次执行函数。

我之前使用过 AngularJS,所以对watch很熟悉。然而,通常更好的做法是使用计算属性而不是命令式的 watch 回调。

后记:每天将自己工作和学习中遇到的问题和好的方法记录下来。

Vue中,我们可以使用watch选项来监测数据变化。监测的对象可以是data中已存在的值、函数、methods中的函数名,以及computed中的值。当监测的数据发生变化时,相应的方法会被触发执行。具体的写法有以下几种: 1. 监测data中已存在的值: ```javascript watch: { a: function(newVal, oldVal) { // 执行相关操作 console.log(newVal, oldVal); } } ``` 2. 监测函数: ```javascript watch: { data() { console.log('数据发生变化'); } } ``` 3. 监测methods中的函数名: ```javascript watch: { data: 'changeData' // 值为methods中的方法名 }, methods: { changeData(curVal, oldVal) { console.log(curVal, oldVal); } } ``` 4. 监测computed中的值: ```javascript watch: { computedValue: function(newVal, oldVal) { console.log(newVal, oldVal); } } ``` 需要注意的是,watch监听的对象也可以是包括选项的对象,具体写法根据需求进行调整。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [vue watch关于对象内的属性监听](https://download.csdn.net/download/weixin_38555616/13667758)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [vue的watch使用 监听数据变化](https://blog.csdn.net/zsq199771/article/details/125481011)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值