04 - Vue3语法系统进阶 - 全面掌握Vue3特性

这篇具有很好参考价值的文章主要介绍了04 - Vue3语法系统进阶 - 全面掌握Vue3特性。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

01-ref属性在元素和组件上的分别使用

Vue是基于MVVM设计模式进行实现的,视图与数据不直接进行通信,但是Vue并没有完全遵循这一原则,而是允许开发者直接进行原生DOM操作。

  • 在Vue中可通过ref属性来完成这一行为,通过给标签添加ref属性,然后再通过vm.$refs来获取DOM
  • ref属性添加给组件,可以获取到组件的实例对象,间接地实现组件之间的通信
<template>
  <div>
    <h2>ref属性</h2>
    <button @click="handleClick">点击</button>
    <div ref="elem">aaaaaaaaa</div>
    <div ref="elem2">bbbbbbbbb</div>
    <my-head ref="elem3"></my-head>
  </div>
</template>

<script>
  import MyHead from '@/2_头部组件.vue'
  export default {
    methods: {
      handleClick(){
        // ref属性添加到元素身上,可以获取到当前元素的原生DOM
        console.log( this.$refs.elem );
        console.log( this.$refs.elem2 );

		//ref属性添加到组件身上,可以获取到当前组件的vm对象(实例对象)
        this.$refs.elem3.handleMessage('根组件的数据');
      }
    }
  }
</script> 

2_头部组件.vue文件:

<template>
  <div>
    hello myhead
  </div>
</template>

<script>
  export default {
    data(){
      return {
        message: '头部组件的消息'
      }
    },
    methods: {
      handleMessage(data){
        console.log(data);
      }
    }
  }
</script>

02-利用nextTick监听DOM更新后的情况

  • 主要作用:将回调推迟到下一个 DOM 更新周期之后执行。在更改了一些数据以等待 DOM 更新后立即使用它
  • 默认情况下,数据的更新会产生一个很小的异步延迟,所以直接在数据改变后取获取DOM是得不到DOM更新后的结果,而得到的是DOM更新前的结果
  • 如何才能得到DOM更新后的结果呢,可以有两种方案:
    • 第一种就是利用生命周期updated这个钩子函数
    • 第二种就是利用我们讲的nextTick方法,支持两种风格即回调和promise
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端

03-自定义指令与自定义全局属性及应用场景

  • 除了核心功能默认内置的指令 (例如v-model v-show),Vue 也允许注册自定义指令,来实现一些封装功能。
  • 自定义指令的实现
    • 实现一个简单的v-color指令,用于给元素添加背景色
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端
    • 下面我们来完成一个实际可以应用的指令,按钮权限指令,一般情况下这种指令不会局部使用,而是全局使用,所以可以通过vue来实现一个全局的按钮权限指令
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端
  • 自定义全局属性
    • 添加一个可以在应用的任何组件实例中访问的全局 property,这样在引入一些第三方模块的时候,就不用每一次进行import操作,而是直接通过this对象去访问全局属性即可,下面举一个例子,实现一个http的全局属性。
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端

04-复用组件功能之Mixin混入

  • 它是选项式API的一种复用代码的形式,通过混入mixin的方式,我们可以将一些公共的数据、方法或计算属性复用到多个组件中,提高代码的可维护性和重用性.
    04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端
  • mixin存在的问题就是不够灵活,不支持传递参数,这样无法做到差异化的处理,所以目前比较推荐的复用操作还是选择使用组合式API中的use函数来完成复用的逻辑处理

05-插件的概念及插件的实现

  • 插件是自包含的代码,通常向 Vue 添加全局级功能。例如:全局方法、全局组件、全局指令、全局mixin等等。基
  • 于Vue的第三方模块都是需要通过插件的方式在Vue中进行生效的,比如:Element PlusVue RouterVuex等等。
    04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端

06-transition动画与过渡的实现

  • Vue中通过两个内置的组件来实现动画与过渡效果,分别是:<transition><transition-group>
    04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端
    04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端

07-动态组件与keep-alive组件缓存

  • 动态组件
    • 动态组件可以实现在同一个容器内动态渲染不同的组件,依一个内置组件<component>is属性的值,来决定使用哪个组件进行渲染。
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端
  • keep-alive组件
    当我们点击的时候,就会进行组件的切换。在每次切换的过程中都会重新执行组件的渲染,这样组件操作的行为就会还原,而我们如何能够保证组件不变呢?可以利用<keep-alive>对组件进行缓存,这样不管如何切换,都会保持为初始的组件渲染,这样可以很好的保留之前组件的行为。
    组件的切换也可以配合<transition>完成动画的切换。
    04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端

08-异步组件与Suspense一起使用

  • 异步组件
    • 在大型应用中,我们可能需要将应用分割成小一些的代码块,并且只在需要的时候才从服务器加载一个模块。

    • 对于大型项目来说,如果能实现按需载入的话,那么势必会对性能有所提升,在Vue中主要就是利用defineAsyncComponent来实现异步组件的。
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端

  • Suspense组件
    • 由于异步组件是点击切换的时候才去加载的,所以可能会造成等待的时间,那么这个时候可以配合一个loading效果,在Vue中提供了一个叫做<Suspense>的组件用来完成loading的处理。
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端

09-跨组件间通信方案 Provide_Inject

正常情况下,我们的组件通信是需要一级一级的进行传递,通过父子通信的形式,那么如果有多层嵌套的情况下,从最外层把数据传递给最内层的组件就非常的不方便,需要一级一级的传递下来,那么如何才能方便的做到跨组件通信呢?

可以采用Provide inject 依赖注入的方式来完成需求
04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端
04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端

10-Teleport实现传送门功能

  • Teleport组件
    • Teleport可以实现传送门功能,也就是说逻辑属于当前组件中,而结构需要在组件外进行渲染,例如:按钮模态框组件。
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端
  • 逻辑组件
    • 但是往往我们需要的并不是普通组件的调用方式,而是逻辑组件的调用方式:
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端

11-虚拟DOM与render函数及Diff算法虚拟DOM

  • 虚拟DOM
    • Vue框架帮我们完成了大量的DOM操作,那么在底层Vue并没有直接操作真实的DOM,因为真实的DOM直接去操作是非常好性能的,所以最好在JS环境下进行操作,然后在一次性进行真实DOM的操作。
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端
    • 内置的render函数可以把字符串转换成虚拟DOM。
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端
  • Diff算法
    • 当更新的时候,一个依赖发生变化后,副作用会重新运行,这时候会创建一个更新后的虚拟 DOM 树。运行时渲染器遍历这棵新树,将它与旧树进行比较,然后将必要的更新应用到真实 DOM 上去。

    • 而两个虚拟DOM进行对比的时候,需要加入一些算法提高对比的速度,这个就是Diff算法。
      04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端文章来源地址https://www.toymoban.com/news/detail-661318.html

  • 在脚手架下我们推荐使用:
    04 - Vue3语法系统进阶 - 全面掌握Vue3特性,前端,vue.js,javascript,前端

到了这里,关于04 - Vue3语法系统进阶 - 全面掌握Vue3特性的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【前端】VUE3使用$ref()糖语法 去除.value

    Reactivity Transform | Vue Macros (sxzz.moe)

    2024年02月12日
    浏览(35)
  • 前端2023最全面试题(javaScript、typeScript、vue2、vue3、html、css、uniapp、webpack、vite、react)

    答案:JavaScript中的闭包是一种函数,它有权访问其词法环境的变量和其它函数。这意味着,即使其包含它的函数已经执行完毕,其词法环境仍然存在,因此可以访问其作用域内的变量。 答案:回调函数是在某个特定事件之后执行的函数。在JavaScript中,通常使用回调函数来处

    2024年02月06日
    浏览(55)
  • 掌握Go语言:Go语言结构体进阶,探索高级特性与实用技巧(23)

    Go语言中的结构体(Struct)除了基本的定义和使用外,还有一些高级用法,可以让我们更灵活地使用结构体。下面详细解释一些高级用法: 结构体嵌套 结构体可以嵌套在其他结构体中,形成更复杂的数据结构。这种嵌套可以使代码更清晰,更符合逻辑。同时,可以通过嵌套来

    2024年03月27日
    浏览(51)
  • 这些vue基本语法,你掌握了吗

    1. 单页面应用程序 单页面应用程序指的是一个应用程序中只有唯一的一个 HTML 页面,所有的功能与交互都在这唯一的一个页面内完成。 单页面应用程序将所有的功能局限在一个HTML页面中,仅在该HTML页面初始化时加载相应的资源(HTML、JavaScript、CSS)。一旦页面加载完成了,

    2024年02月01日
    浏览(75)
  • 2023-08-04 Untiy进阶 C#知识补充4——C#5主要功能与语法

    ​ 注意:在此仅提及 Unity 开发中会用到的一些功能和特性,对于不适合在 Unity 中使用的内容会忽略。 一、概述 C# 5 调用方信息特性(C# 进阶内容) 异步方法 async 和 await 二、回顾——线程 Unity 支持多线程 Unity 中开启的多线程不能使用主线程中的对象 Unity 中开启多线程后一

    2024年02月14日
    浏览(27)
  • Vue3-01-Vue3 新特性及环境搭建

    Vue.js是一种被广泛使用的JavaScript框架,用于构建用户界面和单页面应用。Vue3是其最新的主要版本,引入了许多新特性并做了一些改进。 Vue2 和 Vue3 在数据响应性系统的实现上采用了不同的方式:Vue2 使用 Object.defineProperty,而 Vue3 则选择了 Proxy。 (1) Vue2:Object.defineProperty 在

    2024年02月07日
    浏览(39)
  • JavaWeb图书管理系统课设:全面掌握CRUD操作

    详细介绍JavaWeb图书管理系统的开发过程,包括后端Servlet服务、前端Ajax交互以及MyBatis的增删改查实现,适合初学者巩固JavaWeb知识。

    2024年02月08日
    浏览(40)
  • vue3新特性 Ⅱ

    setup()中使用生命周期函数 在生命周期钩子前加上on来访问 并且需要保持小驼峰的命名方式, setup 中的生命周期函数 不包括 beforeCreate 和 created 。 onMounted:比以前的mounted有优势,以前生命周期函数只能存在一个,现在可以存在多个,可以根据业务需要拆分。    Provide

    2024年02月03日
    浏览(38)
  • Vue3的新特性

    Vue 3的新特性包括: Composition API:一种新的API风格,可将有关组件功能的代码逻辑封装在单独的函数中,从而更好地管理和重用代码。 Teleport:可以让组件在DOM层次结构中的任何位置渲染。 Suspense: 一种新的异步渲染模式,可以优化应用程序的性能。 更快的渲染速度:Vue

    2024年02月05日
    浏览(38)
  • 基于VUE3+Layui从头搭建通用后台管理系统(前端篇)八:自定义组件封装上

      本章实现一些自定义组件的封装,包括数据字典组件的封装、下拉列表组件封装、复选框单选框组件封装、单选框组件封装、文件上传组件封装、级联选择组件封装、富文本组件封装等。 1. 详细课程地址: https://edu.csdn.net/course/detail/38183 2. 源码下载地址: 点击下载

    2024年02月12日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包