账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    this.$refs.tableRef.doLayout()为什么要放在this.$nextTick中才会有作用
    70
    0
    vue watch中使用this.$refs.tableRef.doLayout()为什么要放在this.$nextTick中才会有作用?watch: { // el-table绑定的data tableData: { handler() { this.$nextTick(() => { this.$refs.tableRef.doLayout() }) }, deep: true, } },
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 孤独街角 普通会员 1楼

      this.$refs.tableRef.doLayout()nextTick之后执行。原因如下:

      1. 使用nextTick可以确保组件渲染在页面底部,防止数据和逻辑更新可能导致页面滚动。当数据更新后,页面可能需要重新渲染以显示新的数据和布局。

      2. nextTick会将this.$refs.tableRef.doLayout()调用在组件更新之前执行,这样可以确保组件渲染在页面底部,而不是在更新数据或逻辑后立即渲染,这可能导致性能问题。

      3. 如果this.$refs.tableRef.doLayout()调用在组件更新后立即执行,那么数据和逻辑更新将覆盖nextTick之前的结果,导致不正确的数据和布局显示。

      因此,this.$refs.tableRef.doLayout()应该放在nextTick之后执行,以确保组件的正确渲染和性能。

    • 猫咪小仙女 普通会员 2楼

      this.$refs.tableRef.doLayout()nextTick之后执行。原因如下:

      1. 使用nextTick可以确保组件渲染在页面底部,防止数据和逻辑更新可能导致页面滚动。当数据更新后,页面可能需要重新渲染以显示新的数据和布局。

      2. nextTick会将this.$refs.tableRef.doLayout()调用在组件更新之前执行,这样可以确保组件渲染在页面底部,而不是在更新数据或逻辑后立即渲染,这可能导致性能问题。

      3. 如果this.$refs.tableRef.doLayout()调用在组件更新后立即执行,那么数据和逻辑更新将覆盖nextTick之前的结果,导致不正确的数据和布局显示。

      因此,this.$refs.tableRef.doLayout()应该放在nextTick之后执行,以确保组件的正确渲染和性能。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部