143 votes

Vues vs composants dans Ember.js

Je suis en apprentissage ember.js et je suis en train d'essayer de comprendre la différence entre une vue et d'un composant. Je vois à la fois comme une façon de faire de composants réutilisables.

De Braise de son site sur les points de vue:

Vues Ember.js sont généralement créés uniquement pour les raisons suivantes:
-Quand vous en avez besoin sophistiquées de manipulation des événements de l'utilisateur
-Lorsque vous souhaitez créer une ré-utilisable composant

De Braise du site web sur les composants:

Un composant est une balise HTML personnalisée dont le comportement est de mettre en œuvre à l'aide de JavaScript et dont l'apparence que vous décrivez à l'aide de Guidon modèles. Ils vous permettent de créer réutilisables contrôles qui peuvent simplifier votre application de modèles.

Alors, quelle est la principale différence entre une vue et un composant? Et ce serait un exemple commun où je préfère l'utilisation d'une vue sur un composant et vice-versa?

170voto

intuitivepixel Points 17514

De braise.Vue

Une Braise.La vue est actuellement limitée aux balises qui sont créés pour vous par le W3C. Mais si vous voulez définir vos propres spécifiques à l'application des balises HTML et de les mettre à leur comportement à l'aide de JavaScript? Vous ne pouvez pas faire cela avec une Braise.Vue.

De braise.Composant

C'est exactement ce que composants vous permettent de le faire. En fait, c'est une bonne idée que le W3C est en train de travailler sur des Éléments Personnalisés spec.

Braise de la mise en œuvre des composantes essaie d'être au plus près de la Web Composants spécification que possible. Une fois les Éléments Personnalisés sont largement disponibles dans les navigateurs, vous devriez être en mesure de migrer facilement votre Braise composants à la norme du W3C et utilisable par d'autres cadres qui ont adopté la nouvelle norme.

C'est tellement important pour nous que nous travaillons en étroite collaboration avec les organismes de normalisation pour assurer la mise en œuvre des composantes correspond à la feuille de route de la plateforme web.

Également important à noter est que l'un de Braise.Le composant est en fait une Braise.Affichage (sous-classe), mais qui est complètement isolé. L'accès à la propriété dans ses modèles accédez à la vue de l'objet et les actions sont ciblées également à la vue de l'objet. Il n'y a pas d'accès à l'environnantes context ou à l'extérieur en controller toutes les informations contextuelles est passé, ce qui n'est pas le cas avec une Braise.Vue qui a, en effet, l'accès aux environs de contrôleur, par exemple à l'intérieur d'une vue, vous pourriez faire quelque chose comme this.get('controller') qui vous donnerait le contrôleur actuellement associés à la vue.

Alors, quelle est la principale différence entre une vue et un composant?

Ainsi, la principale différence en plus de composants vous permettent de créer vos propres étiquettes et à un certain moment dans l'avenir, lorsque des Éléments Personnalisés sont disponibles également migrer/l'utilisation de ces composants dans d'autres cadres qui servira de support des éléments personnalisés, n'est en effet qu'à un certain point une braise composant va faire un point de vue quelque peu obsolète en fonction de la mise en œuvre spécifique de cas.

Et ce serait un exemple commun où je préfère l'utilisation d'une vue sur un composant et vice-versa?

À la suite de la ci-dessus, cela dépend clairement sur votre cas d'utilisation. Mais en règle générale, si vous avez besoin dans votre point de vue de l'accès à environs contrôleur etc. l'utilisation d'une Braise.Vue, mais si vous voulez isolé de la vue et de passer uniquement les informations dont il a besoin pour le travail rend-il agnostically du contexte et beaucoup plus réutilisable, l'utilisation d'une Braise.Composante.

Espérons que cela aide.

17voto

Johnny Oshika Points 15580

La réponse est simple: utiliser des composants

Selon une vidéo de formation qui a été enregistré en août 2013, Yehuda Kats et Tom Dale (Braise principaux Membres de l'Équipe) a dit à l'auditoire de ne pas utiliser de points de vue, sauf si vous êtes un développeur framework. Ils ont fait de nombreuses améliorations pour le Guidon et les éléments introduits, de sorte que les vues ne sont plus nécessaires. Les vues sont utilisées en interne pour pouvoir les choses comme {{#if}} et {{sortie}}.

Des composants d'imiter le Composant Web standard qui sera construit dans le navigateur, il y a donc beaucoup d'avantages à devenir à l'aise bâtiment de Braise Composants.

3voto

Hrishi Points 1623

Utiliser les fonctionnalités de manière judicieuse. Cela peut sembler un fade déclaration qui dit rien sur la façon de résoudre le problème, mais j'ai trouvé utile quand je suis en train d'écrire de braise. À mon avis, d'utiliser des composants lorsqu'ils ont un sens bien défini et limité interaction avec le monde extérieur - un exemple d'une telle chose pourrait être un composant. Un datepicker ne fait qu'une chose et une chose seulement: Il permet de sélectionner une plage de dates et fournit une api pour votre application d'accéder à ce que les dates de et à. Vous avez encore besoin de points de vue dans de nombreux cas pour la manipulation sophistiquée interaction de l'utilisateur. Juste le remplacement de vues avec des composants indépendamment du cas d'utilisation est de mauvais conseils. Un autre critère pour décider de ce qui doit être vue par rapport à un composant est: Combien de personnalisation a-t-elle? Si l'élément de l'interface utilisateur a trop de personnalisation pour votre application, il est logique d'en faire un point de vue. Si c'est général et il faut peu de personnalisation, alors il est logique de le faire dans un composant.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X