当前位置: 首页 > news >正文

vue3.0--2.watch、vue3生命周期函数、Teleport、自定义事件、状态驱动的动态 CSS、Suspense

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

目录

文章目录

1、监听属性 (watch)

2、vue3生命周期函数

2.1 选项式API和组合式API

3、Teleport

4、自定义事件

5、状态驱动的动态 CSS

6、Suspense



1、监听属性 (watch)

watch使用示例如下:

2、vue3生命周期函数

1.生命周期的定义

        Vue中每个组件都是独立的,每个组件都有一个属于它的生命周期,从一个组件创建、数据初始化、挂载、更新、销毁、这就是一个组件的生命中周期。

vue3新增了生命周期钩子,我们可以通过在生命周期函数前on来访问组件的生命周期

Composition API 形式的生命周期钩子

如下:

        onBeforeMount            onMounted
        onBeforeUpdate           onUpdated
        onBeforeUnmount       onUnmounted
        onErrorCaptured
        onRenderTracked
        onRenderTriggered

2.1 选项式API和组合式API

① 选项 API

什么是选项 API :

        vue2.x 项目中使用的就是 选项API 写法

        代码风格:date选项写数据,methods选项写函数、、、、,一个功能逻辑的代码分散

        优点:易于学习和使用,写代码的位置已经约定好了

        缺点:代码组织性差,相似的逻辑代码不便于复用,逻辑复杂代码多了不好阅读。

虽然提供了 mixins 用来封装逻辑,但是出现数据函数覆盖的概率很大,不好维护

② 组合 API

什么是组合 API :

        在 vue3 中使用的就是 组合API 写法

        代码风格:一个功能逻辑的代码组织在一起(包括数据,函数、、、)

        优点:功能逻辑复杂繁多情况下,各个功能逻辑代码组织再一起,便于阅读和维护

        缺点:需要有良好的代码组织能力和拆分逻辑能力 (在 vue3 中也可以支持 vue2 选项API 写法)

③ 选项式和组合式 API 的关系

  1. 组合式 API 的目的是增强,不是取代选项式 API , vue3 对两种 API 都支持

  2. 简单的场景使用选项式 API 更加简单方便

  3. 需要强烈支持 TS 的项目首选组合式 API

  4. 需要大量逻辑复用的场景首选组合式 API

 组件中: 选项式API
         创建前后:-setup替代
         挂载前后:beforeMount     mounted
         更新前后:beforeUpdate    updated
         销毁前后:beforeunmount  unmounted

 
 
 setup:组合式API
         挂载前后 onbeforemounted  onunmounted
         更新前后 
         销毁前后-onbeforeunmount  onunmounted

3、Teleport

Teleport 是一种能够将我们的模板移动到 DOM 中 Vue app 之外的其他位置的技术。

        如果我们嵌套在 Vue app 内的某个组件内部,那么处理嵌套组件的定位、z-index 和样式就会变得很困难。
        使用 Teleport 就可以方便的解决组件间 css 层级问题

        我们将模态内容包装在 teleport 组件中,还需要指定一个 to 属性,为该属性分配一个查询选择器,以标识目标元素。

然而,有时组件模板的一部分逻辑上属于该组件,而从技术角度来看,最好将模板的这一部分移动到 DOM 中 Vue app 之外的其他位置

teleport示例应用如下:

效果图如下:

4、自定义事件

1、事件名:与组件和 prop 一样,事件名提供了自动的大小写转换。如果在子组件中触发一个以 camelCase (驼峰式命名) 命名的事件,你将可以在父组件中添加一个 kebab-case (短横线分隔命名) 的监听器。

2、定义自定义事件:可以通过 emits 选项在组件上定义发出的事件

3、v-model 参数

4、多个v-model 绑定

5、状态驱动的动态 CSS

        单文件组件的 <style> 标签可以通过 v-bind 这一 CSS 函数将 CSS 的值关联到动态的组件状态上

示例如下:

效果如下:

6、Suspense

<suspense> 组件有两个插槽。它们都只接收一个直接子节点。default 插槽里的节点会尽可能展示出来。如果不能,则展示 fallback 插槽里的节点。

suspense示例应用如下:

相关文章:

  • Java · 面向对象编程 · 包的概念 · 继承 · 组合
  • Zabbix6通过ODBC方式监控Oracle 19C最佳实践
  • 企业复杂的数据治理需求,TempoDF让数据开发更简单!
  • hive on spark 执行sql报错
  • 离散化(保序)
  • 文本纠错易语言代码
  • 【python】遇上COS美图怎么办?当然是大胆冲呀~
  • 苏小妍java开发工程师-一面面经
  • 「SpringCloud Alibaba」Sentinel实现熔断与限流
  • 赶紧进来看看---详细介绍五种常用字符串库函数 以及对库函数的模拟实现
  • 浅谈 python在密码学的应用
  • lammps数据后处理:python绘制应力应变曲线 附程序代码
  • 机器学习模型2——决策树
  • Java.lang.Character类中codePointAt(CharSequence seq, int index)方法具有什么功能呢?
  • docker-compose 安装Harbor
  • [译]前端离线指南(上)
  • Django 博客开发教程 16 - 统计文章阅读量
  • Hibernate【inverse和cascade属性】知识要点
  • Java小白进阶笔记(3)-初级面向对象
  • JS字符串转数字方法总结
  • MySQL几个简单SQL的优化
  • Python 基础起步 (十) 什么叫函数?
  • SQLServer之创建数据库快照
  • underscore源码剖析之整体架构
  • 不上全站https的网站你们就等着被恶心死吧
  • 基于游标的分页接口实现
  • 讲清楚之javascript作用域
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 详解NodeJs流之一
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • NLPIR智能语义技术让大数据挖掘更简单
  • ​LeetCode解法汇总1410. HTML 实体解析器
  • #define 用法
  • #include到底该写在哪
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (3)llvm ir转换过程
  • (30)数组元素和与数字和的绝对差
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (正则)提取页面里的img标签
  • .net core 控制台应用程序读取配置文件app.config
  • .Net Core 中间件验签
  • .NET Framework与.NET Framework SDK有什么不同?
  • .Net MVC4 上传大文件,并保存表单
  • .Net Web项目创建比较不错的参考文章
  • .NET3.5下用Lambda简化跨线程访问窗体控件,避免繁复的delegate,Invoke(转)
  • .net利用SQLBulkCopy进行数据库之间的大批量数据传递
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • /bin/rm: 参数列表过长"的解决办法
  • @KafkaListener注解详解(一)| 常用参数详解
  • @PreAuthorize注解