vue1.0和vue2.0的watch监听事件写法详解

下面就来详细讲解Vue.js的watch监听事件写法。

什么是Vue.js的watch监听事件

在Vue.js中,watch监听是Vue实例中一个非常重要的属性。它可用于监控Vue实例数据的变化,并在数据变化时立即做出响应操作。

Vue.js的watch监听事件用于监控数据变化的情况下执行一些操作。比如:当数据变化时,需要向服务器发送请求,或根据数据变化对DOM元素进行操作等。

vue1.0版本watch监听事件写法详解

在Vue1.0版本中,监听数据变化分为两种方式:$.watch和$set。其中,$.watch可以监听具体某个数据变化的情况,而$set是一个全局性的数据监听方法。

1. $.watch监听某个具体数据变化的方式

具体示例如下:

<body>
  <div id="app">
    <p>{{message}}</p>
  </div>
</body>
var vm = new Vue({
  el: '#app',
  data: {
    message: 'Hello,World!'
  }
})

vm.$.watch('message', function (newValue, oldValue) {
  console.log('message发生了变化')
})

2. $set全局监听方式

在Vue1.0中,可使用$set全局监听到所有数据的变化。我们需要将所有的数据都放到一个对象中,然后能够通过这个对象$set实现全局监听。

具体示例如下:

<body>
  <div id="app">
    <p>{{obj.message}}</p>
  </div>
</body>
var vm = new Vue({
  el: '#app',
  data: {
    obj: {
      message: 'Hello,World!'
    }
  }
})

Vue.$.watch(vm, function () {
  console.log('obj中的任意数据发生变化')
})

vue2.0版本watch监听事件写法详解

在Vue2.0版本中,watch监听事件发生了一些变化。使用watch属性对数据进行监听时,需要使用深度监听的方式,并且需要指定一个handler作为监听器。

1. watch监听具体某个数据变化

具体示例如下:

<body>
  <div id="app">
    <p>{{message}}</p>
  </div>
</body>
var vm = new Vue({
  el: '#app',
  data: {
    message: 'Hello,World!'
  },
  watch: {
    message: function (newValue, oldValue) {
      console.log('message发生了变化')
    }
  }
})

2. watch监听所有数据变化

同样在Vue2.0中,我们可以使用watch属性进行全局监听。我们只需要在watch里面指定deep: true即可实现全部监听。

具体示例如下:

<body>
  <div id="app">
    <p>{{obj.message}}</p>
  </div>
</body>
var vm = new Vue({
  el: '#app',
  data: {
    obj: {
      message: 'Hello,World!'
    }
  },
  watch: {
    obj: {
      handler: function () {
        console.log('obj中的任意数据发生变化')
      },
      deep: true
    }
  }
})

以上便是Vue.js的watch监听事件写法详解,希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue1.0和vue2.0的watch监听事件写法详解 - Python技术站

(0)
上一篇 2023年5月29日
下一篇 2023年5月29日

相关文章

  • 使用vue-cli3新建一个项目并写好基本配置(推荐)

    下面是使用vue-cli3新建一个项目并写好基本配置的完整攻略,步骤如下: 1. 安装Node.js和npm 使用vue-cli3新建项目需要先安装Node.js和npm。我们可以在Node.js的官网中找到相应的安装包并下载安装,具体步骤可在官网中查看。 2. 全局安装vue-cli3 在安装好Node.js和npm之后,我们需要在命令行中输入以下命令来全…

    Vue 2023年5月28日
    00
  • Vue首屏性能优化组件知识点总结

    当我们开发网站时,保证首屏性能优化是一个非常重要的问题。在Vue的开发中,也存在一些优化策略和技术,来帮助我们优化网站的首屏性能,其中组件是一个比较重要的方面。以下是Vue首屏性能优化组件知识点总结的完整攻略。 1. 异步组件 Vue允许我们将组件代码进行异步加载,这可以帮助我们解决首屏加载慢的问题。可以采用以下办法: 1.1 使用vue-cli创建项目时,…

    Vue 2023年5月28日
    00
  • JS三级可折叠菜单实现方法

    JS三级可折叠菜单是一种常见的页面交互效果,下面提供一种实现方法。 实现方法 1. HTML结构 首先,需要在HTML结构中定义菜单所需要的层级结构,示例代码如下: <ul id="menu"> <li> <a href="#">一级菜单1</a> <ul> …

    Vue 2023年5月28日
    00
  • Vue全局事件总线你了解吗

    当进行 Vue 项目开发时,有时需要在组件之间进行通信,常见的方式有props、自定义事件、Vuex等。除了这些方式,还可以使用Vue的全局事件总线来实现组件之间的通信。 什么是Vue全局事件总线? Vue全局事件总线是通过Vue实例来实现的全局事件总线。Vue实例是一个事件代理,它中转和分发事件通知,从而实现各组件之间的通信。它的实现是通过创建一个Vue实…

    Vue 2023年5月29日
    00
  • vue data对象重新赋值无效(未更改)的解决方式

    如果 Vue.js 应用中的 data 对象重新赋值后没有有效更改,这可能是由于 Vue.js 的响应式机制导致的。下面是几种解决vue data对象重新赋值无效(未更改)的方式。 方式一:Vue.set 方法 使用 Vue.set 方法向 data 对象中添加新的属性或给已有的属性重新赋值时,会触发 Vue.js 的响应式更新。例如: Vue.set(th…

    Vue 2023年5月28日
    00
  • vue项目中的public、static及指定不编译文件问题

    在Vue项目中,public、static以及指定不编译文件是比较重要的概念,下面我将详细讲解这些概念。 public 文件夹 public文件夹是一个特殊的目录,其中的文件会在打包时被直接拷贝到输出目录(dist)下,不经过编译。因此,在public文件夹中添加的文件不会被Vue进行webpack构建的过程处理,最终输出的结果会直接使用这些文件,适用于一些…

    Vue 2023年5月28日
    00
  • 基于Vue实现自定义组件的方式引入图标

    当我们在Vue项目中需要使用图标时,通常的做法是通过引入第三方的iconfont或者使用SVG等方式,但是如果项目需要使用自定义的图标时,我们需要基于Vue实现自定义组件的方式引入图标,下面是该过程的完整攻略: 创建Vue组件 首先,我们需要创建一个Vue组件,该组件的目的是用来渲染我们自定义的图标。组件代码如下: <template> <…

    Vue 2023年5月27日
    00
  • 详解vue静态资源打包中的坑与解决方案

    接下来我将详细讲解“详解vue静态资源打包中的坑与解决方案”的完整攻略。 一、问题描述 在Vue开发中,经常需要使用一些静态资源,如图片、字体等。但是,当我们将Vue项目打包后,这些静态资源文件在文件系统中的路径就会变化,这就会导致引用不到这些资源从而导致网页无法正确显示。 二、原因分析 静态资源路径问题通常由Webpack打包机制引起的。Webpack 在…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部