美文网首页前端开发那些事儿
vue3.0破坏性变化----函数式组件

vue3.0破坏性变化----函数式组件

作者: 有一种感动叫做丶只有你懂 | 来源:发表于2021-03-17 21:57 被阅读0次

函数式组件仅能通过简单函数方式创建,funcational选项废弃。

函数式组件变化较大,主要有以下几点:

  • 性能在vue3.0的提升,基本可以忽略不记,所以vue3中推荐使用状态组件
  • 函数式组件仅能通过纯函数形式声明,接收propscontext俩个参数
  • context结构发生了变化
  • SFC中<template>中不能再添加functional特性声明此组件是函数式组件
  • {functional:true}选项被移除

先来回顾一下vue2.0的函数式组件
// 子组件Functional.vue
<script>
export default {
  functional: true,
  render(h, ctx) {
    console.log(ctx);
    return h("div", ctx.data, ctx.scopedSlots.content());
  },
};
</script>

//父组件
<functional :items="[1, 2, 3, 4, 5, 6, 7, 8]">
      <p>默认...</p>
      <template v-slot:content>
        <p>content...</p>
      </template>
</functional>

看一下渲染结果

image.png
看一下子组件中ctx的输出 ,他是一个FunctionalRenderContext类型的对象
image.png
再来看一下vue3.0的函数式组件
//子组件FunctionalTest.vue
<script >
import { h } from "vue";
function Heading(props, ctx) {
  console.log(ctx);
  return h(`h${props.label}`, ctx.attrs, ctx.slots.content());
}
export default Heading;
</script>




//父组件
<functional-test label="1">
    <p>这是一段文本</p>
    <template v-slot:content> ...content </template>
</functional-test>

看一下渲染结果

image.png
看一下子组件中ctx的输出 ,所有的属性都被放到attrs里面,插槽都被放到slots里面,总之很清晰
image.png

相关文章

  • vue3.0破坏性变化----函数式组件

    函数式组件仅能通过简单函数方式创建,funcational选项废弃。 函数式组件变化较大,主要有以下几点: 性能在...

  • Vue3.0破坏性变化----异步组件

    vue3.0中异步组件要求使用defineAsyncComponent方法创建 由于vue3中函数式组件必须定义为...

  • React 函数式组件

    简单函数式组件 使用 hook 的函数式组件

  • React入门(二)

    组件 1.函数式组件 什么是函数式组件创建一个函数,只要函数中返回一个新的JSX元素,则为函数式组件 调用组件可以...

  • React - 类组件创建

    React创建组件有两种方式 函数式组件 类组件函数式组件已经学过,现在看下类组件怎么写。 函数式组件和类组件区别...

  • React 面向组件编程

    函数式组件// 创建函数式组件function MyComponent() {console.log(this)/...

  • 函数式组件

    函数式组件 函数式组件,即无状态,无法实例化,内部没...

  • Render渲染函数和JSX

    render函数 h( 元素,属性,值 ) 中 h 不能少 使用 list组件中调用 函数式组件 定义函数式组件 ...

  • recompose函数式库 + ( git? ) + ( vo

    (一) recompose 函数式组件,高阶组件库 (1) withState 因为函数式组件中没有state,但...

  • Vue.js 2函数式组件学习

    什么是函数式组件? 函数式组件就是函数是组件,组件是函数,它的特征是没有内部状态、没有生命周期钩子函数、没有thi...

网友评论

    本文标题:vue3.0破坏性变化----函数式组件

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