重看vue3文档-随手记

组合是API

  • ref

  • computed

    • 参数:getter 函数
    • 返回 只读 ref对象
// 正常写法:
const b = ref('1')
const a = computed(()=> b.value) // 这样调用的其实是b的getter函数

// 可写set函数实现可修改
const a = computed({
    get:()=>b.value,
    set:(val)=>b.value+val
})

// 

  • reactive

    • 当参数内的变量是一个ref时,reactive会对ref进行自动解包,调用时不再需要用.value
    • 当reactive是个数组或map或set类型是,不能进行解包
const count = ref({cuont : 0})
const state = reactive(state)
console.log(state.cuont) // 0
console.log(state === count) // true
  • readonly 获取到响应式对象的只读代理

  • watchEffect

    • 参数二用于设置option
    • 返回值:停止副作用的函数
    • 回调函数的参数是 副作用清除函数 ,用于清除副作用
    差异 watch watchEffect
    追踪响应式依赖的方式 不会追踪回调中访问的东西, 在回调中追踪依赖项
    watchEffect(async (onCleanup)=>{
    })
    

工具函数

  • isRef()
  • unref()
  • isRactive()
  • isProxy()
  • toRef() 当需要把非响应式对象转成响应式对象时就很有用
  • toRefs()
  • isReadonly()
  • toValue()
function useFeatureX() {
  const state = reactive({
    foo: 1,
    bar: 2
  })

  // ...基于状态的操作逻辑

  // 在返回时都转为 ref
  return toRefs(state)
}

// 可以解构而不会失去响应性
const { foo, bar } = useFeatureX()

内置指令

  • v-text 更新文本内容
<span v-text="张三">  </span>
  • v-html 更新元素的innerHTML

进阶API - TypeScript工具类型

  • ExtractPropTypes ts工具类用于解构 出prop的类型,但仅面向组件内部 ,如果是boolean类型或有默认值的属性会默认为必需
const props = {
    foo : String,
    bar: Boolean
    baz :{
        type:Number
    },  
}
type TProps = ExtractPropTypes<typeof props>
// {foo?:string,bar:boolean,baz:number}
  • ExtractPublicPropTypes 导出组件的类型给父组件用
  • PropType 用于定义prop做类型声明

深度指南

模板语法

  • 动态绑定多个值
const attr = {
    id:'container',
    class:'age'
}

<div v-bind="attr"></div>
  • 在模板中绑定表达式或函数,模板每次更新都表达式或函数都会自动调用
  • 动态绑定 【】中的值必须是个string类型
<button :[hre]="url"></button>

响应式基础

  • 模板插值{{}}:

1、只会解构响应式的第一层

2、如果ref的值是最终输出值,也就是说ref在模板上没有任何计算,那么它是可以渲染的

<template>
  {{ state.id }} // 能够输出
  <input type="text" :value="state.id.value"> // 能够输出
    <input type="text" :value="state.id"> // 不能输出
</template>

<script setup lang="ts">
    const count = ref(0)
    const state = {id: count}

    setInterval(()=>{
      state.id.value++
    },1000)
</script>
  • reactive对象对ref的解包

1、直接设置属性是其他ref,reactive会对他解包,当做一个普通属性设置,它两是联系起来的

2、当reactive的属性重新赋值成为另一个ref时,与原来ref的关联就会断开

3、reactive对数组和集合类型的元素不会解包

列表渲染

  • v-for

v-for 是支持遍历对象的!

v-if 比v-for 的优先级更高,意味着v-if是获取不到for里面迭代的内容的

  • v-model

可添加 .lazy 把更新时机改成change事件以后

知识点

为什么dom上依赖的多个值被更新了,但是dom最终只更新了一次

vue会在next tick更新周期中缓冲所有状态的修改,确保无论进行多少次修改,组件都只会被更新一次

在模板列表中也可以使用解构

<!-- 有 index 索引时 -->
<li v-for="({ message }, index) in items">
  {{ message }} {{ index }}
</li>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,192评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,186评论 1 303
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,844评论 0 252
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,471评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,876评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,891评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,068评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,791评论 0 205
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,539评论 1 249
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,772评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,250评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,577评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,244评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,146评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,949评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,995评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,812评论 2 276

推荐阅读更多精彩内容