provide依赖注入

// provide 和 inject 通常成对一起使用,使一个祖先组件作为其后代组件的依赖注入方,无论这个组件的层级有多深都可以注入成功,只要他们处于同一条组件链上。
// 只能在setup语法糖或者setup函数中使用,其他optionsApi只能使用配置方式
import { provide, ref, readonly } from 'vue'
const color = ref<string>('red')
provide('color', readonly(color)) 只读,防止后代组件被修改

inject

// 用于声明要通过从上层提供方匹配并注入进当前组件的属性。
import { inject, Ref } from 'vue';
const color = inject<Ref<string>>('color', [defaultValue]) // 可选默认值
const changeColor = () => {
  color!.value = 'blue' // 非空断言
}

ts_!非空断言

// 非空断言操作符操作符 ! 可以用于断言操作对象是非 null 和非 undefined 类型。即: arg! 将从 arg 值域中排除 null 和 undefined 
function handle(arg: string | null | undefined) {
  arg.split('') // null 或者undefined 会报错
  arg!.split('')
  const str:string = arg // null 或者undefined 会报错
  const str:stirng = arg! // ok
}

vue3_css使用v-bind

<style lang="less" scoped>
.box {
  background: v-bind(color)
}
</style

原文地址:http://www.cnblogs.com/JunLan/p/16852189.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性