您的当前位置:首页正文

vue3 使用function方法

2021-10-14 来源:伴沃教育
在 Vue 3 中,你可以使用函数式组件。函数式组件是一种轻量级的组件,它们没有实例化的过程,没有生命周期钩子,也没有状态(响应式数据)。它们只是一个简单的函数,接收一些参数,并返回要渲染的虚拟节点。

下面是一个使用函数式组件的示例:

javascript复制代码

import { h } from 'vue';

const FunctionalComponent = (props, context) => { // 在这里可以使用 props 和 context 参数 const { attrs, slots, emit } = context;

// 返回要渲染的虚拟节点

return h('div', { class: 'functional-component' }, [ h('p', `Props: ${JSON.stringify(props)}`), h('p', `Attrs: ${JSON.stringify(attrs)}`), slots.default ? slots.default() : null,

h('button', { onClick: () => emit('click') }, 'Click me'), ]); };

export default FunctionalComponent;

在这个示例中,我们导入了 h 函数,它是 Vue 3 中用于创建虚拟节点的函数。然后,我们定义了一个名为 FunctionalComponent 的函数,它接收 props 和 context 两个参数。props 是传递给组件的属性,context 提供了一些有用的上下文信息,如插槽(slots)和事件发射(emit)等。

在函数体内,我们可以使用 h 函数创建虚拟节点,并返回它们。在这个示例中,我们创建了一个包含一些文本和一个按钮的 div 元素。我们还使用了 slots.default 来渲染任何传递给组件的默认插槽内容。最后,我们使用 emit 函数来触发一个名为 click 的自定义事件。 要使用这个函数式组件,你可以在父组件中这样使用它:

javascript复制代码

import { defineComponent } from 'vue';

import FunctionalComponent from './FunctionalComponent.vue';

export default defineComponent({ components: { FunctionalComponent, }, // ... });

在模板中,你可以像使用其他组件一样使用这个函数式组件:

html复制代码

请注意,函数式组件在 Vue 3 中是默认启用的,你不需要额外的配置或插件来使用它们。

因篇幅问题不能全部显示,请点此查看更多更全内容