vue3(二)
创始人
2024-03-22 19:24:45
0

前一篇讲了 vue3的生命周期钩子的使用。
本节接着讲 vue3的数据通信。

provide/inject 依赖注入

App.vue

Info.vue 作为后代组件来消费根组件传递的数据


父子组件通信

创建一个List.vue


创建Info.vue, 父组件传递 tex 变量给子组件, 子组件通过触发getDataFromSon()向父组件传递数据


setup() 这种写法

setup() 区别

  • setup()函数中定义的变量或者函数,需要 return 暴露出去,模板才能调用
  • 而当使用 优势:
    setup_attribute
    toRef()toRefs() 区别
    toRef
const state = reactive({foo: 1,bar: 2
})
// 通过toRef()后 fooRef变量也是响应式的,改变foo的值,fooRef也改变
// 作用:将一个非响应式的变量转换为一个响应式变量
const fooRef = toRef(state, 'foo')// 更改该 ref 会更新源属性
fooRef.value++
console.log(state.foo) // 2// 更改源属性也会更新该 ref
state.foo++
console.log(fooRef.value) // 3

toRefs
ref()shallowRef() 区别

ref()我们知道可以创建一个响应式变量
shallowRef(): ref() 的浅层作用形式。

那么,shallowRef()就是可以创建一个浅层次的响应式变量,
应用场景:如果你的数据不赋值,不变更或者修改,只是做展示用,那么可以用 shallowRef(),可以节省性能消耗

reactive()shallowReactive()

reactive(): 返回一个对象的响应式代理,
响应式转换是“深层”的:它会影响到所有嵌套的属性。一个响应式对象也将深层地解包任何 ref 属性,同时保持响应性

shallowReactive():reactive() 的浅层作用形式。

和 reactive() 不同,这里没有深层级的转换:一个浅层响应式对象里只有根级别的属性是响应式的。属性的值会被原样存储和暴露,这也意味着值为 ref 的属性不会被自动解包了
若要避免深层响应式转换,只想保留对这个对象顶层次访问的响应性,请使用 shallowReactive() 作替代。

const state = shallowReactive({foo: 1,nested: {bar: 2}
})// 更改状态自身的属性是响应式的
state.foo++// ...但下层嵌套对象不会被转为响应式
isReactive(state.nested) // false// 不是响应式的
state.nested.bar++

相关内容

热门资讯

爱回收、同城帮二手回收乱象:砍... 出品|搜狐科技 作者|郑松毅 编辑|杨锦 家里放着淘汰的旧手机,想卖掉回血却怕踩坑?不少人都抱着“能...
青海五年完成省级地方性法规和规... 中新网西宁12月27日电(祁增蓓)26日,记者从“‘十四五’发展成就”系列主题新闻发布会青海省司法厅...
新《海商法》中海上货物运输制度... 开栏寄语 《中华人民共和国海商法》完成全面修订并正式实施,这标志着我国海事法治建设进入新阶段,为加快...
2025年读书笔记(上):《乔... 小崔律师认为书单与歌单一样,实际上是非常私人化的内容,只有选择而无好坏之分,所谓的推荐其实只是对20...
原创 政... 忍无可忍的食堂承包商的一纸实名举报,撕开了河南省周口市淮阳人民中学从餐费中强行超高抽成,从学生口中夺...
小学女教师和校长的“窗帘纠纷”... 近日,关于一名女教师向校长申请安装窗帘遭到拒绝的事件,有了最新进展。 根据报道,该女教师所在的班级...
年度盘点丨十大关键词,看楼市政... 获取最新政策解读报告 ☞ 戳这里,加入地产/物业/投拓/产城 展望2026年,稳楼市的主基调延续,...
原创 韩... 韩国这回跟日本杠上了,不仅起诉了“靖国神社”,还要求日本政府赔钱,高市早苗的麻烦事儿,可真是一桩接着...
甘肃省镇原县人民法院:“小额诉... “法院拿出的一揽子方案,既考虑了我们企业的实际情况,也兼顾双方的合法权益,我们还愿继续合作!” 日前...
甘肃省民乐县人民法院诉讼服务中... “不到十分钟就完成了从咨询到立案的全部流程!”近日,一企业办事人员在法院干警的指导下,通过涉企绿色通...