函数式组件
2023-12-18 21:19:05
函数式组件是一种定义自身没有任何状态的组件的方式。它们就像纯函数:接受props,返回vnodes。函数式组件在渲染过程中不会创建组件实例(也就是说,没有this),也不会触发常规的组件生命周期钩子。
下面用一个例子来学习函数式组件:
<script setup lang='ts'>
import { ref ,h} from "vue"
/**
* Implement a functional component :
* 1. Render the list elements (ul/li) with the list data
* 2. Change the list item text color to red when clicked.
*/
const ListComponent = (props, { emit }) => {
const children = []
props.list.map((item,index)=>{
children.push(
h('li', {
style: {
color: index === props['active-index'] ? 'red' : '#333'
},
onClick:()=>{
emit('toggle',index)
}},item.name)
)
})
return h('ul',children)
}
const list = [{
name: "John",
}, {
name: "Doe",
}, {
name: "Smith",
}]
const activeIndex = ref(0)
function toggle(index: number) {
activeIndex.value = index
}
</script>
<template>
<list-component
:list="list"
:active-index="activeIndex"
@toggle="toggle"
/>
</template>
该例子实现的效果是点击文字时,文字会变为红色
文章来源:https://blog.csdn.net/content6/article/details/135069477
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!