1、Teleport

可以控制在DOM中哪个节点下渲染。

//创建一个组件
app.component('modal', {template: `<div>//指定teleport在body标签下渲染<teleport to="body"><div v-if="modalOpen" class="modal"><div>I'm a teleported  in body! </div></div></teleport></div>`,data() {return { modalOpen: false}}
})

prop有两个:
1、to:string类型,可以是有效的查询选择器或 HTMLElement (如果在浏览器环境中使用)
2、disabled:boolean类型,可以禁用teleport功能,禁用以后将在父元素中渲染

2、Fragments

组件可以包含多个根节点!但是,必须显式定义 attribute 对应哪个节点。

<template><header>...</header><main v-bind="$attrs">...</main><footer>...</footer>
</template>

3、触发组件选项

1、emit

//在父组件中
<my-component @my-event="doSomething"></my-component>
//子组件中,触发
this.$emit('myEvent')

2、声明事件:
触发的事件可以以两种形式声明:
1)使用字符串数组的简单形式

export default {emits: ['check'],created() {this.$emit('check')}
}

2)使用对象的完整形式,其中每个属性键是事件的名称,值是null或者是验证器函数。

export default {emits: {// 不进行任何验证click: null,// 提交验证//要添加验证,需要为事件分配一个函数,该函数接收传递给 $emit 调用的参数,并返回一个布尔值以指示事件是否有效。submit: (payload) => {if (payload.email && payload.password) {return true} else {console.warn(`无效的提交参数!`)return false}}}
}

emits选项会影响组件接收的哪些事件侦听器被视为组件事件侦听器与原生 DOM 事件侦听器。当在 emits 选项中定义了原生事件 (如 click) 时,将使用组件中的事件替代原生事件侦听器。

4、SFC状态驱动的CSS变量

<template><div class="text">hello</div>
</template><script>
export default {data() {return {color: 'red'}}
}
</script><style>
.text {color: v-bind(color);
}
</style>

也可以支持JavaScript 表达式 (需要用引号包裹起来)

<script setup>
const theme = {color: 'red'
}
</script><template><p>hello</p>
</template><style scoped>
p {color: v-bind('theme.color');
}
</style>

5、SFC

1、>>>和/deep/支持已被弃用。vue3中接受另一个选择器作为参数的伪元素:

::v-deep(.bar) {}

2、
在v2中,从父级传入的插槽内容受父级范围样式和子级范围样式的影响。在 v3 中,子级范围样式默认不影响插槽内容。在子级中要显式定位插槽内容,可以使用::v-slotted()(简写:):slotted()

:: v-slotted ( .foo ) {}

3、新的伪元素::v-global()可用于在

:: v-global ( .foo ) {}

6、组合式API

//Component API 是以函数的形式展示组件属性,所以第一步就是导入我们需要的函数。我们用 reactive 创建响应属性,用 computed 创建计算属性。
import { reactive, computed } from 'vue'//仅依赖它的参数和 Vue 全局导出的 API,而不是依赖其微妙的 this 上下文
function useCounter() {const state = reactive({count: 0,double: computed(() => state.count * 2),});function increment () { count.value++ }return {state,incrememt}
}export default {setup () {//这里不存在命名空间冲突,可以通过解构任意命名const { state, increment } = useCounter()return {state,increment}}
}

注意:setup函数是组合式API的入口,setup在初始化props之后,beforeCreate之前被调用,所以不能用this,是取不到东西的

组合式API参考https://segmentfault.com/a/1190000023016699

未完待续。。。

Vue3 实用特性总结相关推荐

  1. Redis高级实用特性:发布及订阅消息

    在之前的文章中,介绍过Redis数据库高级实用特性中的持久化机制,今天为大家介绍Redis的另一高级实用特性--发布及订阅消息. 发布订阅(pub/sub)是一种消息通信模式,主要的目的是解耦消息发布 ...

  2. Redis学习第八课:Redis高级实用特性(一)

    Redis高级实用特性 注:我学习的环境是vmware7.1 + ubantu10.10+ redis 3.0.2 1.安全性 设置客户端连接后进行任何其他指定前需要的密码.因为redis速度相当快, ...

  3. 卷死了!再不学vue3就没有人要你了!速来围观vue3新特性

    一文全面了解vue3新特性 一.

  4. Vue基础+Vue3新特性

    目录 模板语法 文本 原始HTML 属性Attribute 使用 JavaScript 表达式 条件渲染 v-if v-else v-show v-if vs v-show 的区别 列表渲染 事件处理 ...

  5. 开发效率提升300%,Vue3新特性已成气候!

    在 Vue2.0 时代,国内大厂的前端开发框架,几乎清一色偏向 React.因为对于业务成熟的公司而言,一个项目,可能会包含很多非侵入式的代码和服务,并不是功能实现了就万事大吉. 但随着 Vue3.0 ...

  6. Vue3 新特性 内置组件 <Teleport>

    任意传送门--Teleport Vue3 的组合式 API 以及基于 Proxy 响应式原理已经有很多文章介绍过了,除了这些比较亮眼的更新: Vue3 还新增了一个内置组件:Teleport.这个组件 ...

  7. 对vue3新特性Tree-Shaking进行详细介绍

    当谈论 Vue 3 中的 Tree-Shaking 特性时,需要提到它是通过构建工具和模块导入方式实现的.下面将详细介绍如何在 Vue 3 中使用 Tree-Shaking. 1. 配置构建工具: 在 ...

  8. Vue3新特性和使用方法系统总结

    目录 1.vue3带来的新变化(加+) 2.移除vue2中的某些语法(减-) 3.目录变化 4.组合式API和选项式API的区别 5.组合API-setup函数 6 . 组合API-生命周期 7.组合 ...

  9. html 5实用特性之data属性

    HTML 5之前,我们必须依赖于class和rel属性来存储需要在网站中使用的数据片段,这种做法有时会在网站的外观和实用性之间产生冲突.而HTML 5 Data属性的存在就能很好满足需要. HTML5 ...

最新文章

  1. 交换机配置软件crt安装_非常详细的锐捷二层交换机配置教程,适合新手小白
  2. 初步学习JS中的闭包
  3. 【记录一个问题】cuda核函数可能存在栈溢出,导致main()函数退出后程序卡死30秒CUDA...
  4. OpenCV简单的几何绘图的实例(附完整代码)
  5. 问题与解答 [Questions Answers]
  6. 写在2009年的开始
  7. Learning XNA 3.0翻译连载--序言
  8. PyTorch 1.0 中文官方教程:使用 PyTorch C++ 前端
  9. Linux Ubuntu 18.04安装JDK、Hadoop、Hbase以及图形界面
  10. Asp.Net MVC 自定义登录过滤器
  11. MapReduce环境准备
  12. Jdk11下载及idea演示
  13. 终极免费云盘同步攻略
  14. 2021牛客多校#10 F-Train Wreck
  15. PyTorch中view的用法
  16. 创建区块计算次数_区块链计算的四个阶段
  17. HTML+CSS+JS实现3D爱心跳动特效
  18. 稀疏数组(golang实现)
  19. GRBL二:串口控制命令及代码解析(转载)
  20. 使用了 23 的 Java 真的收费了吗?

热门文章

  1. 人人网——正在下沉的巨轮
  2. 阿里巴巴P8架构师手码SpringCloud笔记,看完不走弯路
  3. 基于SpringBoot的房屋租赁管理系统的设计与实现
  4. C语言常用库函数总结
  5. 基于R语言的Meta分析【全流程、不确定性分析】方法与Meta机器学习技术应用
  6. 微信h5支付 ajax,H5支付跳转问题
  7. PMP考试都是什么题?
  8. HiveSql一天一个小技巧:如何在表的特定位置添加字段
  9. 刷机错误ERROR:STATUS_BROM_CMD__FAIL
  10. C语言回顾--C语言实现栈的入栈和出栈