this.$nextTick()

在我们写Vue项目时,经常会使用到this.$nextTiick()方法,这个方法通常是用来处理vue组件实例更新后的回调,比如说我们在页面渲染过后,点击某一按钮触发了请求更新的函数,这时通常需要调用它进行页面的更新。

例如事件出发后,弹窗并且更新表单内容

  methods: {
    handlePwd() {
      this.dialogFormVisible = true;
      this.$nextTick(() => {
        this.$refs["ruleForm"].resetFields();
      });
    }
  }

这个方法接收两个参数Vue.nextTick([callback,content])

官方点说是用于在下次 DOM 更新循环结束之后执行延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。

// 修改数据
vm.msg = 'Hello'
// DOM 还没有更新
Vue.nextTick(function () {
  // DOM 更新了
})

// 作为一个 Promise 使用 (2.1.0 起新增,详见接下来的提示)
Vue.nextTick()
  .then(function () {
    // DOM 更新了
  })

Vue2.1.0新增:如果没有提供回调且在支持 Promise 的环境中,则返回一个 Promise。请注意 Vue 不自带 Promise 的 polyfill,所以如果你的目标浏览器不原生支持 Promise (IE:你们都看我干嘛),你得自己提供 polyfill。

以上就是 Vue.nextTick()的介绍。

你可能感兴趣的:(vue.js,javascript)