当前位置: 首页 > news >正文

vue内置方法总结

目录

1. 生命周期钩子方法

2. 响应式系统方法

3. DOM 更新方法

4. 事件处理方法

5. 访问子组件和 DOM 元素

6. 数据观察方法

7. 其他方法


1. 生命周期钩子方法

这些方法在 Vue 实例的不同生命周期阶段自动调用。

  • beforeCreate

    • 在实例初始化之后,数据观测 (data observer) 和 event/watcher 事件配置之前被调用。
  • created

    • 在实例创建完成后立即调用,此时已完成数据观测 (data observer),属性和方法的运算,watch/event 事件回调。但是,挂载阶段还没开始,$el 属性目前不可见。
  • beforeMount

    • 在挂载开始之前被调用,相关的 render 函数首次被调用。
  • mounted

    • 实例被挂载后调用,此时 el 被新创建的 vm.el替换。如果根实例挂载到了一个文档内的元素上,当‘mounted‘被调用时,vm.el替换。如果根实例挂载到了一个文档内的元素上,当‘mounted‘被调用时,vm.el 也在文档内。
  • beforeUpdate

    • 数据更新时调用,发生在虚拟 DOM 打补丁之前。这里适合在更新之前访问现有的 DOM,比如手动移除已添加的事件监听器。
  • updated

    • 由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。
  • beforeDestroy

    • 实例销毁之前调用。在这一步,实例仍然是完全正常的。
  • destroyed

    • 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。

2. 响应式系统方法

这些方法用于处理响应式数据。

  • $set

    • 向响应式对象中添加新的属性,或者更新现有属性,并确保该属性是响应式的。
    • 语法this.$set(target, key, value)
    • 示例
      this.$set(this.queryParams, 'partno', '');
  • $delete

    • 从响应式对象中删除一个属性,并确保视图能够响应这个变化。
    • 语法this.$delete(target, key)
    • 示例
      this.$delete(this.queryParams, 'partno');

3. DOM 更新方法

这些方法用于处理 DOM 更新。

  • $nextTick

    • 在下一次 DOM 更新循环结束之后执行回调函数。这通常用于在数据变化后等待 DOM 更新完成。
    • 语法this.$nextTick(callback)
    • 示例
      this.message = 'Hello';
      this.$nextTick(() => {// DOM 已经更新console.log(this.$el.textContent); // 'Hello'
      });

4. 事件处理方法

这些方法用于处理事件。

  • $on

    • 监听 Vue 实例上的自定义事件。
    • 语法this.$on(event, callback)
    • 示例
      this.$on('custom-event', (data) => {console.log(data);
      });
  • $once

    • 监听 Vue 实例上的自定义事件,但只触发一次。
    • 语法this.$once(event, callback)
    • 示例
      this.$once('custom-event', (data) => {console.log(data);
      });
  • $off

    • 移除 Vue 实例上的自定义事件监听器。
    • 语法this.$off(event, callback)
    • 示例
      const handler = (data) => {console.log(data);
      };this.$on('custom-event', handler);
      // 后面某个时刻移除监听器
      this.$off('custom-event', handler);
  • $emit

    • 触发 Vue 实例上的自定义事件。
    • 语法this.$emit(event, [args...])
    • 示例
      this.$emit('custom-event', 'some data');

5. 访问子组件和 DOM 元素

  • $refs

    • 访问子组件或 DOM 元素的引用。
    • 语法this.$refs
    • 示例
      <template><div><child-component ref="child"></child-component></div>
      </template><script>
      export default {mounted() {this.$refs.child.someMethod();}
      };
      </script>

6. 数据观察方法

  • $watch

    • 监听 Vue 实例上的数据变化。
    • 语法this.$watch(source, callback, [options])
    • 示例
      this.$watch('message', (newVal, oldVal) => {console.log(`Message changed from ${oldVal} to ${newVal}`);
      });

7. 其他方法

  • $forceUpdate

    • 强制 Vue 实例重新渲染。
    • 语法this.$forceUpdate()
    • 示例
      this.$forceUpdate();
http://www.lryc.cn/news/483962.html

相关文章:

  • 面向对象分析与设计
  • lineageos-19 仓库群遍历,打印第一条git log
  • 详解基于C#开发Windows API的SendMessage方法的鼠标键盘消息发送
  • VMware安装黑苹果后ICLOUD_UNSUPPORTED_DEVICE(不支持的Icloud设备)
  • Python | Leetcode Python题解之第542题01矩阵
  • 【计算机网络】【传输层】【习题】
  • 【LeetCode】【算法】55. 跳跃游戏
  • 华为:hcia综合实验
  • MyBatis与MyBatis-Plus(基础)
  • 一文总结java语法规则
  • 使用 npm 安装 Yarn
  • vue3中利用路由信息渲染菜单栏
  • Mysql每日一题(行程与用户,困难※)
  • adb 命令 查找启动的包名以及导出安装包
  • Flink_DataStreamAPI_输出算子Sink
  • 标准C++ 字符串
  • 时序预测:多头注意力+宽度学习
  • day06(单片机)IIC+STH20
  • Bugku CTF_Web——文件上传
  • C#版使用融合通信API发送手机短信息
  • 人工智能:重塑医疗、企业与生活的未来知识管理——以HelpLook为例
  • MVVM(Model-View-ViewModel)模型
  • 权限系统:权限应用服务设计
  • Android音频架构
  • AI 智享直播:开启直播新篇,引领未来互动新趋势!
  • 【AIGC】国内AI工具复现GPTs效果详解
  • Charles抓https包-配置系统证书(雷电)
  • 在卷积神经网络中真正占用内存的是什么
  • 2024 ECCV | DualDn: 通过可微ISP进行双域去噪
  • Elasticsearch 和 Kibana 8.16:Kibana 获得上下文和 BBQ 速度并节省开支!