Dans Vue.js, l'attribut functional
a une signification très spécifique lorsqu'il est utilisé dans une définition de composant. Lorsqu'un composant possède cet attribut, cela signifie qu'il est purement fonctionnel et sans état.
Un composant fonctionnel dans Vue.js est un composant qui est sans état (c'est-à-dire qu'il ne réagit pas aux modifications de l'état) et sans instance (c'est-à-dire sans this
context). Ces composants sont purement des fonctions de leurs propriétés et ne conservent pas un état interne.
Par exemple, voici une simple définition de composant fonctionnel :
Vue.component('mon-composant', {
functional: true,
// Notez bien l'absence de `data`
props: ['url', 'text'],
// Un template de composant fonctionnel doit être une fonction
// qui renvoie un nœud VNode.
render: function (createElement, context) {
return createElement('a', {
attrs: {
href: context.props.url
}
}, context.props.text)
}
})
Dans cet exemple, mon-composant
est un composant fonctionnel car il a l'attribut functional
défini comme true
et n'a pas de data
.
Les composants fonctionnels sont particulièrement utiles pour les composants de présentation qui sont principalement utilisés pour rendre la sortie basée sur des propriétés sans avoir à gérer leur propre état ou comportement.
En conclusion, bien que les composants fonctionnels soient très utiles pour certains scénarios, ils ne sont pas destinés à remplacer tous les autres types de composants dans Vue.js. Ils sont un outil supplémentaire dans la boîte à outils d'un développeur Vue.js, à utiliser lorsqu'ils sont le choix le plus judicieux pour une tâche donnée.