


Introduction aux composants du framework JavaScript (xmlplus) (5) Barre d'onglets
xmlplus est un JavaScriptframework pour le développement rapide de projets front-end et back-end. Cet article présente principalement l'onglet de la série de conception de composants xmlplus, qui a une certaine valeur de référence. Les amis intéressés peuvent se référer à
Ce chapitre concevra un composant d'onglet, qui est portable et couramment utilisé sur les équipements. un diagramme schématique :
Composition des onglets
Avant l'implémentation spécifique, imaginer comment le composant cible est utilisé sera d'une grande aide à la conception. Par inspection, le composant onglet peut être divisé en une partie conteneur et une partie enfant, comme indiqué dans la structure XML suivante.
<Tabbar id="tabbar"> <TabItem id="home" label="首页"/> <TabItem id="setting" label="设置"/> <TabItem id="logs" label="日志"/> <TabItem id="about" label="关于"/> </Tabbar>
Passons maintenant à la partie sous-élément du composant onglet pour voir comment la partie sous-élément est décomposée. À partir du diagramme, vous pouvez voir que la section enfant peut être décomposée en un conteneur enfant et une section enfant contenant une icône et un texte.
<a id="tabitem"> <Icon id="icon"/> <span id="label">首页</span> </a>
Donc, maintenant notre objectif est très clair, concevoir principalement trois composants : le composant icône Icon, le sous-élément TabItem du composant onglet et le conteneur Tabbar du composant onglet.
Schéma de structure
Ce composant étant relativement simple, les trois sous-composants peuvent être placés au même niveau. Mais veuillez noter que nous avons également quatre composants d'icônes et que nous pouvons créer un enfant pour les contenir. Notre diagramme de structure de composants est donné ci-dessous :
Tabbar/
├── Tabbar
├── TabItem
└── Icon/
├─ ─ À propos
├── Accueil
├── Journaux
└── Paramètres
Mise en œuvre des icônes
Commençons par le plus simple et examinons les quatre composants d'icône. Le composant icône est principalement implémenté en encapsulant du texte SVG. Étant donné que le texte de l'icône est long, seule une section de chaque texte d'icône est interceptée ici.
About: { xml: `<svg width="48" height="48" viewBox="0 0 1024 1024"> <path d="M507.577907 23.272727C240.142852..."/> </svg>` }, Home: { xml: `<svg width="48" height="48" viewBox="0 0 1024 1024"> <path d="M949.082218 519.343245 508.704442..."/> </svg>` }, Logs: { xml: `<svg width="48" height="48" viewBox="0 0 1024 1024"> <path d="M576 125.344l32 0 0 64-32 0 0-64Z..."/> </svg>` }, Setting: { xml: `<svg width="48" height="48" viewBox="0 0 1024 1024"> <path d="M512 336.664c-96.68 0-175.336 78...."/> </svg>` }
Veuillez noter que ces icônes sont situées sous le répertoire/icône virtuel, c'est-à-dire que vous devez les importer comme suit :
xmlplus("ui", function (xp, $_, t) { $_().imports({Tabbar: {... }, TabItem: {...}}); $_("icon").imports({--这里包含了四个图标组件--}); });
Ce qui suit est d'implémenter l'icône Icône du composant, l'icône ici Le composant est différent de celui ci-dessus, il instanciera différentes icônes en fonction du type d'icône d'entrée. Cette conception permet de réutiliser une partie du même code et d’éviter la redondance.
Icon: { css: "#icon { width: 1.5em; height: 1.5em; display: inline-block; }", opt: { icon: "about" }, xml: `<span id="icon"/>`, fun: function (sys, items, opts) { sys.icon.replace("icon/" + opts.icon).addClass("#icon"); } }
L'élément fonction de ce composant crée un composant d'icône basé sur le type d'icône d'entrée et remplace l'élément span existant objet . Notez que vous devez rajouter le style après le remplacement.
Implémentation du sous-élément
Selon le principe de l'intérieur vers l'extérieur, implémentez ensuite le sous-élément TabItem du composant onglet. Pour ce composant, vous devez également effectuer un mappage d'attribut dans l'élément de mappage du composant et mapper la valeur de l'attribut id à l'attribut icon du composant icône interne.
TabItem: { css: "这里是样式项部分,为便于组件整体展示,略去...", map: {"attrs": { icon: "id->icon" } }, xml: `<a id="tabitem"> <Icon id="icon"/> <span id="label">首页</span> </a>`, fun: function (sys, items, opts) { sys.label.text(opts.label); function select() { sys.tabitem.addClass("#primary"); } function unselect() { sys.tabitem.removeClass("#primary"); } return { select: select, unselect: unselect }; } }
Ce composant fournit une interface pour basculer entre les états sélectionnés et non sélectionnés lors du changement d'option. À utiliser avec les conteneurs à onglets.
Implémentation des onglets
Enfin, regardons l'implémentation du composant d'onglet Tabbar. Ce composant écoute l' événement lorsque l'utilisateur appuie sur l'onglet. Il fait principalement deux choses dans l'écouteur : l'une consiste à maintenir le changement d'état de l'onglet ; commuté.
Tabbar: { css: "这里是样式项部分,为便于组件整体展示,略去...", xml: `<nav id="tabbar"/>`, fun: function (sys, items, opts) { var sel = this.first(); this.on("touchend", "./*[@id]", function (e) { sel.value().unselect(); (sel = this).value().select(); this.trigger("switch", this.toString()); }); if (sel) sel.value().select(); } }
À ce stade, un composant onglet est terminé. Jetons un coup d'œil à une application spécifique :
xmlplus("example", function (xp, $_, t) { $_().imports({ Index: { xml: `<Footer id='footer'/>`, fun: function (sys, items, opts) { this.on("switch", (e, target) => console.log(target)); } }, Footer: { xml: `<Tabbar id="footer"> <TabItem id="home" label="首页"/> <TabItem id="setting" label="设置"/> <TabItem id="logs" label="日志"/> <TabItem id="about" label="关于"/> </Tabbar>` } }); });
Dans le composant Index, vous pouvez écouter les messages de l'onglet. Changez d'événement pour effectuer les opérations correspondantes. Par exemple, utilisez le composant de pile View que nous présenterons plus tard pour effectuer des opérations de commutation entre les pages.
Cette série d'articles est basée sur le framework xmlplus. Si vous ne savez pas grand-chose sur XMLplus, vous pouvez visiter www.xmlplus.cn. Une documentation détaillée de démarrage est disponible ici.
[Recommandations associées]
1. Tutoriel vidéo en ligne js gratuit
2. Manuel de référence JavaScript chinois
3. php.cn Dugu Jiujian (3) - Tutoriel vidéo JavaScript
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Plusieurs utilisateurs de Windows se sont plaints du fait que lorsqu'ils tentent d'accéder à certains sites Web sur le navigateur Google Chrome sur leurs systèmes, ils ne parviennent pas à accéder aux pages Web. Il affiche également un message sur le navigateur indiquant « Le site n'est pas accessible » avec le code d'erreur ERR_ADDRESS_UNREACHABLE. Il peut y avoir de nombreuses raisons potentielles derrière ce problème, cela peut être dû à des problèmes de serveur de site Web, aux paramètres du serveur proxy, à une connexion Internet instable, etc. Si vous rencontrez des problèmes similaires, pas de panique. Après avoir analysé en profondeur le problème dans cet article, nous avons obtenu de nombreuses solutions. Avant de continuer, essayez les solutions de contournement suivantes : Essayez de vérifier si l'utilisateur tente d'accéder au site à partir d'autres appareils et qu'il n'y a aucun problème, alors ceci

Logitech GHub est un logiciel qui permet aux utilisateurs de gérer leurs périphériques Logitech. Ce logiciel est compatible avec Windows 11. Cependant, certains utilisateurs ont signalé que Logitech GHub ne fonctionnait pas pour eux sous Windows 11. Nos lecteurs ont signalé que lorsqu'ils essayaient de lancer le logiciel, le chargement se bloquait. Par conséquent, ils ne peuvent pas utiliser le logiciel lorsqu’il ne s’ouvre pas pour eux. Avez-vous également essayé de réparer LogitechGHub qui ne fonctionne pas sous Windows 11 ? Si tel est le cas, les solutions potentielles ci-dessous peuvent lancer LogitechGHub. Quelle est la raison pour laquelle Logitech GHub ne fonctionne pas sous Windows 11 ? avec beaucoup d'autres

L'une des fonctionnalités fournies avec l'Explorateur de fichiers Windows est le volet d'aperçu, qui affiche un aperçu du fichier que vous avez sélectionné. Cela signifie que vous pouvez afficher le contenu du fichier avant de l'ouvrir. Le volet d'aperçu de l'Explorateur de fichiers fournit des aperçus de différents types de fichiers tels que les documents Office, les PDF, les fichiers texte, les images et les vidéos. Cela fonctionne généralement bien, mais parfois l'aperçu du fichier n'est pas disponible. Récemment, de nombreux utilisateurs de Windows 11 ont soulevé le problème selon lequel le volet d’aperçu de l’Explorateur de fichiers ne fonctionne pas et ne peuvent pas afficher les aperçus des fichiers. Êtes-vous confronté au problème du volet de visualisation qui ne fonctionne pas sur votre ordinateur Windows ? Ensuite, continuez à lire cet article. Nous avons compilé ici une liste de correctifs qui peuvent vous aider à résoudre

MSIAfterburner est un outil d'overclocking adapté à la plupart des cartes graphiques. En dehors de cela, vous pouvez également l'utiliser pour surveiller les performances de votre système. Mais certains utilisateurs ont signalé que MSIAfterburner ne fonctionnait pas sous Windows 11. Cela peut être dû à plusieurs raisons, que nous aborderons dans les sections suivantes. Cependant, lorsque cela se produit, cela vous empêche de modifier les performances ou de les surveiller pendant le jeu. Comme prévu, cela pose un défi de taille aux joueurs. C'est pourquoi nous avons dédié ce didacticiel pour vous aider à comprendre le problème et vous guider à travers les correctifs les plus efficaces pour le problème MSIAfterburned ne fonctionnant pas sous Windows 11.

Le système d'exploitation est bien meilleur que son prédécesseur et possède des fonctionnalités orientées joueurs comme AutoHDR et DirectStorage, mais les joueurs de Valorant ont eu quelques difficultés à lancer le jeu. Ce n'est pas le premier problème rencontré par les joueurs plus tôt, Valorant qui ne s'ouvre pas sur Windows 11 est un autre problème qui les tourmente, mais nous avons expliqué les moyens de le résoudre. Il semble maintenant que les joueurs de Valorant qui sont passés à Windows 11 soient confrontés à des problèmes dus aux services Secure Boot et TPM2.0, ce qui fait que le menu du jeu n'affiche qu'une option de sortie pendant l'exécution. De nombreux utilisateurs reçoivent l'erreur VAN1067, mais cela ne devrait pas être une source d'inquiétude

La dernière version du navigateur Opera inclut une nouvelle fonctionnalité de popup vidéo automatique. En utilisant cette fonctionnalité, vous remarquerez que la vidéo apparaîtra automatiquement lorsque vous naviguerez vers un autre onglet du navigateur. Il a été remarqué que cette vidéo contextuelle peut être redimensionnée et déplacée sur l'écran. Lorsque vous revenez à l'onglet Vidéos, il reprend et la fenêtre flottante disparaît. La fonctionnalité vidéo contextuelle est utile pour les utilisateurs multitâches qui aiment regarder des vidéos tout en travaillant. Cependant, tous les utilisateurs d'Opera n'apprécieront pas cette fonctionnalité de popup vidéo automatique. Si vous faites partie de ces utilisateurs du navigateur Opera qui sont ennuyés par les vidéos qui apparaissent à chaque fois que vous changez d'onglet, alors vous avez trouvé le bon article. Nous détaillons ici comment désactiver cette fenêtre contextuelle dans Opera

Cette opération nécessite une station fenêtre interactive ce qui est un bug assez étrange. Les fenêtres du logiciel permettant aux utilisateurs d'interagir avec l'application ne sont pas ouvertes, vous devez les activer. Ce bug a été lié à la vulnérabilité 2021 Printing Nightmare. Cependant, cela continue à ce jour, affectant les pilotes de votre ordinateur et de vos périphériques. Heureusement, c'est facile à réparer. Pourquoi cette erreur se produit-elle en premier lieu ? Avant de décrire comment corriger cette erreur, assurez-vous de répertorier les causes de cette erreur. De cette façon, vous pourrez prendre les mesures nécessaires pour garantir que cela ne se reproduise plus. Les fichiers corrompus gâchent vos fichiers informatiques – La corruption peut être causée par diverses raisons, allant des logiciels malveillants aux pannes de courant. Il est recommandé d'exécuter une analyse SFC. Vous avez une application antivirus trop zélée – Le logiciel antivirus bloque parfois

Presque tous les jeux haut de gamme auxquels nous jouons s'appuient sur DirectX pour fonctionner efficacement. Cependant, certains utilisateurs ont signalé avoir rencontré la fonction DirectX GetDeviceRemovedReasonfailedwith suivie de la raison de l'erreur. Les raisons ci-dessus ne sont pas évidentes pour l’utilisateur moyen et nécessitent un certain niveau de recherche pour déterminer la cause profonde et la solution la plus efficace. Pour faciliter les choses, nous avons dédié ce tutoriel à ce problème. Dans les sections suivantes, nous vous aiderons à identifier les causes potentielles et vous guiderons à travers les étapes de dépannage pour éliminer la fonction DirectX GetDeviceRemovedReasonfailedwitherror. quelles sont les causes
