继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【学习打卡】第 12 天 Vue3(4)

ICHAYA
关注TA
已关注
手记 40
粉丝 15
获赞 378

课程名称:前端框架及项目面试 聚焦 Vue3/React/Webpack
课程章节:第 6 章 Vue3 学习(新)
主讲老师:双越

课程内容:

今天学习的内容包括:
6-16 vue3 用 Proxy 实现响应式
6-17 v-model 参数的用法
6-18 watch 和 watchEffect 的区别
6-19 setup 中如何获取组件实例
主要讲了 Proxy 原理和两点细节。后面几节都是vue3 api 实际应用。

课程收获:

大概复述一下

proxy 实现响应式

最基本的昨天其实讲的差不多了,就用 proxyData 代理 data
深度监听,
get 里递归取值。不用一次性递归完,get 到哪层递归到哪层。
判断是否是新增 key: const ownKeys = Reflect.ownKeys(target)

v-model 参数

父组件向子组件传 title,子组件 update:titleu 触发父元素

<MyComponent v-model:title="bookTitle" />

<input :value="title" @input="$emit('update:title', $event.target.value)" />

watch

默认是懒侦听的,即仅在侦听源发生变化时才执行回调函数

// 监听响应值
const count = ref(0)
watch(count, (count, prevCount) => {
  console.log(count, prevCount)
})
// 监听响应对象
const state = reactive({
  name: "Bob",
  age: 2,
});
watch(
  // 确定要监听对象哪个 key
  () => state.age,
  (new,old) => {
    console.log(new, old)
  },
  {
    immediate: true,
    // age 如果是数字
    deep: true
  }
);

watchEffect

立即运行一个函数,同时响应式地追踪其依赖,并在依赖更改时重新执行
初始化时,一定会执行一次(收集要监听的数据)

const state = reactive({
  name: "Bob",
  age: 2,
});
watchEffect(() => {
  console.log("state.name", state.name);
});

停止侦听器

const stop = watchEffect(() => {});
// 当不再需要此侦听器时:
stop();

setup 里取实例

setup 里直接取 this 取不到。
可利用 const instance = getCurrentInstance(),再取 instance.data.name,但不提倡这么做。


结束

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP

热门评论

该内容偏向过程操作,文章的内容应该有 实现的效果 + 实现的步骤 这两块东西 的记录。

我写这句话的时候发现这样的过程文档积累的多了,开发也好,解决问题也好,学习新东西也好,都会很快的,都要积累的。

查看全部评论