vue3 Fragments和emits选项

作者: 深度剖析JavaScript | 来源:发表于2020-11-16 10:22 被阅读0次

Vue3中组件可以拥有多根

我们知道,在vue2.x中,每个组件只能有一个根,这意味着我们写每个组件模板时都要套一个父元素。vue3为了更方便的书写组件模板,引入Fragments,说白了就是vue3中组件可以拥有多个根了
例如:创建一个Fragments.vue,组件模板可以写多个根

<template>
    <div>
        <h1>Fragments</h1>
    </div>
    <div>
        <p>vue3引入Fragments,本意是碎片</p>
        <p>说白了就是vue3的组件可以拥有多个根了</p>
    </div>
    <!--还可以拥有其他更多根-->
</template>

如上,由以前的单根变成多根的情况,是不是有点零零碎碎的感觉,这就是Fragmens意思的来源----碎片

vue3针对自定义事件,添加了emits选项

vue3新增emits选项,需要将组件发送的自定义事件定义在emits选项中。一来可以避免当自定义事件与原生事件重名时,事件会触发多次的情况,比如:click事件;二来可以更好的指示组件的工作方式
例如:创建一个Emits.vue,我们自定义了一个click事件

<template>
  <button @click="$emit('click')">点我</button>
</template>
<script>
export default {
    //emits:['click']
};
</script>

如果自定义事件没有写入到emits选项中,当自定义事件名与原生事件名冲突时,事件会被多次触发

<template>
  <Emits @click="onClick"></Emits>
</template>

<script>
import Emits from './components/Emits.vue'
export default {
  name: 'App',
  components: {
    Emits
  },
  methods:{
    onClick(){console.log('clicked!!!!!')}
  }
}
</script>

因此,在vue3书写自定义事件的时候,都建议将自定义事件书写到emits选项中

以上就是vue3 Fragmentsemits选项的简单使用

相关文章

  • vue3 Fragments和emits选项

    Vue3中组件可以拥有多根 我们知道,在vue2.x中,每个组件只能有一个根,这意味着我们写每个组件模板时都要套一...

  • 16、Vue3 declare it using the "e

    Vue3中 子组件通过emit抛出事件 出现如下警告但不影响使用:Extraneous non-emits eve...

  • Vue3.0新特性----emits选项

    emits 官方文档传送门[https://v3.cn.vuejs.org/api/options-data.ht...

  • vue3 -script-setup emits - defin

    子组件 父组件 父组件接收到子组件的事件响应

  • (十三)Vue3.x中的emits选项

    本章节将介绍到的是用于记录当前实例中的emit事件的选项。 1、概述:当前组件的通过emit的事件列表2、类型:A...

  • 文档基础

    Vue3中文文档收获 基础 一.应用&组件实例 1.1.根组件 constRootComponent={/* 选项...

  • rxjs 操作符 pairwise 的一个例子

    Groups pairs of consecutive emissions together and emits ...

  • 总结fragmentPagerAdapter和FragmentS

    相同点: FragmentPagerAdapter和FragmentStatePagerAdapter都继承自Pa...

  • Vue3 选项API

    为了方便我将相关内容简记如下图: 更多相关原图和原始文件已上传GitHub,一来方便批量下载相关脑图,二来可以方便...

  • Fragments

    在React中要求render函数返回值只能是一个标签,简单方式是通过在最外层包裹一个div来实现,而有时候div...

网友评论

    本文标题:vue3 Fragments和emits选项

    本文链接:https://www.haomeiwen.com/subject/lysabktx.html