满口金牙 2023-09-05 16:48 采纳率: 91.1%
浏览 9
已结题

一个Vue中 困扰了很久的问题,请教大家有没办法在编辑时,暂停计算属性

cell_attr.value = computed(() => {
                        return cellBlurCheck(cell_attr, cell_attr.proto)
                    })  <input  :value=cell_attr.value />  有没办法在编辑时,暂停计算属性
  • 写回答

3条回答 默认 最新

  • 吃西瓜不吐籽_ 2023-09-05 16:51
    关注

    在 Vue 中,计算属性是根据其依赖的响应式数据来实时计算的。如果你想在编辑输入框时暂停计算属性的计算,可以使用 v-model 指令结合 @input 事件来手动控制计算属性的更新。

    首先,修改输入框的绑定,使用 v-model 来实现双向数据绑定,并在 @input 事件中触发一个方法:

    <input v-model="inputValue" @input="handleInput" />
    

    接下来,在 Vue 实例中定义 inputValue 和计算属性,并创建一个标志位来控制计算属性的计算:

    data() {
      return {
        inputValue: '',
        shouldCompute: true,
        computedValue: ''
      };
    },
    computed: {
      cellAttrValue() {
        if (this.shouldCompute) {
          return this.cellBlurCheck(this.inputValue, this.cell_attr.proto);
        } else {
          return this.inputValue;
        }
      }
    },
    methods: {
      handleInput(event) {
        this.shouldCompute = false; // 暂停计算属性的计算
        this.inputValue = event.target.value; // 更新输入框的值
        // 其他逻辑处理...
      },
      cellBlurCheck(value, proto) {
        // 执行计算属性的计算逻辑
        // 返回计算结果
      }
    }
    

    在上述代码中,我们通过 handleInput 方法来处理输入框的输入事件。在该方法中,我们将 shouldCompute 标志位设置为 false,以暂停计算属性的计算。然后,更新输入框的值。

    在计算属性 cellAttrValue 中,我们根据 shouldCompute 的值来决定返回计算属性的计算结果还是输入框的值。

    这样,当你编辑输入框时,计算属性的计算会被暂停,直到你需要重新开始计算。

    希望这个方法能够解决你的问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月13日
  • 已采纳回答 9月5日
  • 创建了问题 9月5日

悬赏问题

  • ¥200 csgo2的viewmatrix值是否还有别的获取方式
  • ¥15 Stable Diffusion,用Ebsynth utility在视频选帧图重绘,第一步报错,蒙版和帧图没法生成,怎么处理啊
  • ¥15 请把下列每一行代码完整地读懂并注释出来
  • ¥15 pycharm运行main文件,显示没有conda环境
  • ¥15 寻找公式识别开发,自动识别整页文档、图像公式的软件
  • ¥15 为什么eclipse不能再下载了?
  • ¥15 编辑cmake lists 明明写了project项目名,但是还是报错怎么回事
  • ¥15 关于#计算机视觉#的问题:求一份高质量桥梁多病害数据集
  • ¥15 特定网页无法访问,已排除网页问题
  • ¥50 如何将脑的图像投影到颅骨上