computed,watch,watchEffect

computed

import { computed, ref } from "vue";

const firstName = ref("");
const lastName = ref("");

const name = computed(() => firstName.value + lastName.value);
// name.value = 'list' // 只读,不可修改
const name1 = computed(
  {
    get() {
      return firstName.value + lastName.value;
    },
    set(value) {
      firstName.value = firstName.value + value;
    },
  },
  {
    onTrack(e) {
      debugger; //调式
    },
    onTrigger(e) {
      debugger; //调式
    },
  }
);
name1.value = "你好,";

watch与watchEffect

import  reactive, ref, watch, watchEffect } from "vue";

const message = ref("");
const message2 = ref("");
watch(message, (newVal, oldValue) => {
  //.....
});
watch([message, message2], (newVal, oldValue) => {
  //newVal = []
  //olValue = []
});
const obj = reactive({ name: "", age: 18 });
watch(obj, () => {}, { deep: true, immediate: true });
watch(
  () => obj.age,
  () => {}
);

const stop = watchEffect(
  (onCleanup) => {
    // 默认第一次执行
    console.log("message", message.value);
    console.log("message2", message2.value);
    onCleanup(() => {
      //.. 在监听之前执行, 不会默认第一次执行
    });
  },
  {
    flush: "post", // 在dom渲染后执行, post, pre, sync
    onTrack() {}, // 调试
    onTrigger() {}, // 调试
  }
);
stop(); // 停止监听
posted @   前端之旅  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示