10 API Web natives que les nouveaux développeurs JavaScript devraient connaître

Ces API JavaScript sont indispensables à tout nouveau développeur, y compris à nos amis qui commencent à utiliser Angular.
Lorsque vous commencez à coder, vous comptez souvent sur des bibliothèques dont vous n'avez peut-être pas besoin. Pire encore, vous pouvez parfois réinventer la roue en codant vous-même une fonction spécifique alors qu'une API native existe. 😳
Nous sommes en 2021 et les navigateurs modernes sont de plus en plus puissants. Chaque semaine, de nouvelles versions sont publiées avec de nouvelles fonctionnalités pour nous faciliter la vie. C'est pourquoi mon objectif dans cet article est de vous montrer quelques API natives que vous ne devriez pas ignorer et de vous donner un cadre pour vous tenir au courant lorsque de nouvelles sont publiées. 😍
Pour faciliter la lecture, chaque partie est organisée comme ceci:
- Commence par un bref résumé de l'API
- Exemples de code
- Exemples concrets de cas d'utilisation réels
- Liens si vous voulez aller plus loin
Si vous êtes prêt, commençons. 💪😁
1. Les API de stockage Web: LocalStorage et SessionStorage
Résumé
L'API de stockage Web a été conçue pour fournir des mécanismes permettant aux navigateurs de stocker des paires clé / valeur de manière plus intuitive que l'utilisation de cookies. Il existe deux API de stockage Web que vous devez connaître:
- Le
sessionStorage
- Le
localStorage
Vous pouvez utiliser l'API de stockage de session lorsque vous devez enregistrer quelque chose pour la durée de la session de page (c'est-à-dire jusqu'à ce que le navigateur ou l'onglet soit fermé). Cela signifie que tout sera disponible même si vous rechargez la page. Au contraire, si vous fermez votre navigateur ou l'onglet, le stockage de session sera vidé, et les données seront perdues.
D'autre part, le stockage local est également utilisé pour sauvegarder quelque chose mais de manière persistante. Cela signifie que le stockage local n'est pas vidé lorsque le navigateur est fermé et rouvert. La seule façon d'effacer le localStorage est d'appeler localStorage.clear ()
.
Exemples de code
sessionStorage . setItem ( 'key' [19659020] 'valeur' ) ;
cont data = sessionStorage . getItem ( 'key' ) ;
sessionStorage . removeItem ( 'key' ) ;
sessionStorage . clear () ;
localStorage . setItem ( 'key' 'valeur' ) ;
cont data = localStorage . getItem ( 'key' ) ;
localStorage . removeItem ( 'key' ) ;
localStorage . clear () ;
Cas d'utilisation dans le monde réel
- Enregistrement des jetons d'authentification une fois qu'un utilisateur est connecté
- Enregistrement des paramètres régionaux sélectionnés pour le multilingue sites Web
- Stockage du nombre de pages vues pour la session en cours
Liens
2. L'API Fetch
Résumé
Lorsque vous avez besoin de récupérer des données à partir d'une API distante, vous pouvez utiliser une bibliothèque comme Axios . Bien que vous puissiez le configurer dans votre projet, une alternative consiste à s'appuyer sur l'API native Fetch disponible dans tous les navigateurs modernes. Cela rendra votre code plus léger et vous pourrez démarrer plus rapidement. Vous pouvez personnaliser presque tout pour répondre à vos besoins, et je n'ai jamais été limité en l'utilisant dans l'un de mes projets. 😇
Exemples de code
fetch ( "https://jsonplaceholder.typicode.com/photos" )
. puis ([19659020] ( response ) => response . json () )
. then ] ( ( photos ) => console . log ( photos ) ) ;
const response = wait fetch ( "https://jsonplaceholder.typicode.com/photos" ) ; [19659100] const photos = wait response . json () ;
Note: The promise that
fetch ()
renvoie ne rejettera pas l'état d'erreur HTTP même si la réponse est un HTTP 404 ou 500. Au lieu de cela, il sera généralement résolu (avec l'état ok défini sur fa lse), et il ne rejettera qu'en cas de panne du réseau ou si quelque chose a empêché la requête de se terminer.
Cas d'utilisation dans le monde réel
- Récupération de tout roi de données à partir d'une API distante comme l'utilisateur authentifié, une liste d'articles de blog , et ainsi de suite
Liens
3. L'API du presse-papiers
Résumé
L'API du presse-papiers a été publiée pour interagir avec les commandes du presse-papiers comme couper, copier et coller. Il est également capable de lire et d'écrire à partir du presse-papiers du système. Il est disponible sous la variable navigateur
.
Exemples de code
wait navigateur . clipboard . writeText ( "Texte à copier" ) ;
const clipText = wait navigateur . presse-papiers . [19659019] readText () ;
document . addEventListener ( "copy" async function () {
} ) ;
document . addEventListener ( "paste" async function () {
} ) ;
Remarque: Si vous souhaitez copier ou lire du texte avec des images, utilisez le presse-papiers
navigator.clipboard.write ()
etnavigator.clipboard.read ( )
.
Cas d'utilisation du monde réel
- Fournit un moyen de copier rapidement quelque chose sur la page en cliquant sur un bouton comme un extrait de code ou un résumé à tweeter
Liens
4. L'API de géolocalisation
Résumé
L'API de géolocalisation a été conçue pour vous permettre d'accéder à la position de votre visiteur (lorsqu'elle le permet, bien sûr). Il est disponible sous navigator.geolocation
. Lorsque vous accédez à cette variable, le navigateur de l'utilisateur vous demandera l'autorisation pour des raisons de confidentialité.
Exemples de code
navigateur . géolocalisation . getCurrentPosition (
function ( positions ) {
var coordonnées = position . coordonnées ;
console . log ( "Votre position actuelle est:" ) ;
console . log ( `Latitude: $ { coordonnées . latitude } ` ) ;
console . log ( `Longitude: $ { coordonnées . longitude } ` ) ;
console . log ( `Plus ou moins $ { coordonnées . précision } mètres.` ) ;
}
function ( err ) {
console . warn ( `ERROR ( $ { err . code } ): [19659173] $ { err . message } ` ) ;
}
) ; [19659093] const watchId = navigateur . géolocalisation . watchPosition (
function ( positions ) {
var coordonnées = position . coordonnées ;
console . log ( "Votre position actuelle est:" ) ;
console . log ( `Latitude: $ { coordonnées . latitude } ` ) ;
console . log ( `Longitude: $ { coordonnées . longitude } ` ) ;
console . log ( `Plus ou moins $ { coordonnées . précision } mètres.` ) ;
}
function ( err ) {
console . warn ( `ERROR ( $ { err . code } ): [19659173] $ { err . message } ` ) ;
}
) ;
navigateur . géolocalisation . clearWatch ( watchId ) ;
Cas d'utilisation dans le monde réel
- Pour tracer l'emplacement de l'utilisateur sur une carte 📍
- Pour afficher des informations personnalisées en rapport avec leur emplacement, comme un événement ou une fête à proximité
Liens
5. L'API de visibilité de page
Résumé
Supposons que vous souhaitiez vérifier si la page est actuellement focalisée avant d'exécuter quelque chose. L'API de visibilité de page a été conçue à cet effet et fournit des événements que vous pouvez surveiller pour savoir quand un document devient visible ou masqué. Cela signifie que lorsque l'utilisateur minimise la fenêtre ou passe à un autre onglet, un événement sera envoyé.
Exemples de code
document . addEventListener (
"visibilitéchange" ]
function () {
if ( document . hidden ) {
console . log ( "the document is not visible" ) ;
} else {
console . log ( "the document is visible" ) ;
}
}
) ;
document . onvisibilitychange = function () {
console . log ( "La visibilité de la page a changé" ) ;
} ;
Cas d'utilisation dans le monde réel
- Économisez des ressources et améliorez les performances de la page en évitant les tâches inutiles lorsque le document n'est pas visible
- Mettez en pause un carrousel d'images et empêchez-le de passer à la diapositive suivante à moins que l'utilisateur affiche la page
- Évitez d'extraire des données d'une API à moins la page est focalisée
Liens
6. L'API Resize Observer
Résumé
L'API Resize Observer vous permet de savoir quand les dimensions d'un élément changent. En un mot, il peut être pratique de déclencher une fonction spécifique lorsque l'utilisateur redimensionne la fenêtre du navigateur.
Exemples de code
var observer = new ResizeObserver [19659020] ( ( entrées ) => {
pour ( let entrée sur entrées ]) {
const content = entrée . contentRect ;
console . log ( "Element:" entry . target ) ;
console . log ( `Taille de l'élément: $ { content . width } px x [19659173] Contenu $ { . hauteur } px` ) ;
console . log ( `Element padding: $ { content . top } px; [19659173] Contenu $ { . gauche } px` ) ;
}
} ) ;
observateur . observer ( ". some-elements" ) ;
observateur . unobserve ( ". some-elements" ) ;
observer . disconnect () ;
Cas d'utilisation dans le monde réel
- Réduire ou augmenter la taille de la police en fonction des dimensions de l'élément
Liens
7. L'API URL
Résumé
Cette API native a été conçue pour fournir un moyen simple d'analyser, de construire, de normaliser et de coder des URL. Comme vous le verrez, cela peut être pratique lorsque vous souhaitez obtenir l'hôte ou le protocole pour une URL donnée. 😃
Exemples de code
const url = new URL ( "http://www.example.com/something?hello=hey# myhash ") ;
console . log ( url . hash ) ;
console . log ( url . host ) ;
console . log ( url . hostname ) ;
console . log ( url . href ) ;
console . log ( url . origine ) ;
console . log ( url . chemin d'accès ) ;
console . log ( url . protocol ) ;
console . log ( url . search ) ;
url . toString () ;
Cas d'utilisation réels
- Analyser une URL pour extraire le nom de domaine
- Mettre à jour une URL donnée en ajoutant une recherche paramètres de celui-ci
Liens
8. L'API de vibration
Résumé
L'API de vibration a été conçue pour fournir une rétroaction physique en secouant l'appareil de l'utilisateur. Si le matériel n'offre pas de vibration (comme un ordinateur de bureau), le code ne fera rien.
Exemples de code
window . navigateur . vibrate ([19659426] 200 ) ;
fenêtre . navigateur . vibrer ( [ 200 100 200 ] [19659020]) ;
window . navigateur . vibrate ( 0 ) ;
Real-world Use Cases
- Vibre le matériel lorsque l'utilisateur effectue une action spécifique dans l 'interface
- Avertir l' utilisateur que quelque chose de significatif s'est produit 📱
Liens
9. L'API Plein écran
Résumé
L'API Plein écran a été conçue pour permettre aux visiteurs d'entrer / sortir un élément donné en plein écran.
Exemples de code
const element = document . querySelector ( ". Element-to-focus" ) ;
élément . requestFullscreen () ;
wait document . exitFullscreen () ;
document . onfullscreenchange = function ( event ) {
console . log ( "Plein écran changé" ) ;
} ;
document . onfullscreenerror = function ( event ) {
console . log ( "Erreur plein écran" ) ;
} ;
Cas d'utilisation dans le monde réel
- Autoriser les visiteurs pour centrer la fenêtre de leur navigateur sur un élément spécifique, comme un jeu en ligne 👾
- Focus sur une partie spécifique d'un tableau de bord analytique
Liens
10. L'API Lazyload
Résumé
Celui-ci n'est pas contrôlé avec JavaScript mais avec une balise HTML5. Je l'ai ajouté à la liste pour vous montrer que de nouveaux attributs pratiques sont en cours de publication.
Si vous avez besoin de charger paresseusement vos images ou vos iframes pour des raisons de performances, il n'est plus nécessaire d'utiliser une API JavaScript. Vous pouvez utiliser l'attribut de chargement et le définir sur paresseux.
Exemples de code
< img src = "image.jpg" loading = " lazy ">
< iframe src = " myiframe.html " loading = " paresseux "> <[19659504] / iframe >
Cas d'utilisation du monde réel
- Augmentez le chargement de la page en demandant les bonnes ressources et ajustez les autres si nécessaire 📈
Liens
11. Où aller à partir de là?
Comme je l'ai dit plus tôt, de nombreuses nouvelles fonctionnalités sont disponibles dans les navigateurs ces jours-ci. Si vous souhaitez rester informé de l’avenir du Web, je vous suggère de visiter ces deux liens uniques sur une base hebdomadaire / mensuelle. 💫
Un dernier mot: lorsque vous avez besoin de vérifier si un navigateur spécifique prend en charge une fonctionnalité particulière, allez sur CanIUse.com . 😁👌
J'espère qu'avec cet article, vous pourrez mieux comprendre à quel point les API natives peuvent être puissantes pour simplifier votre code et alléger vos applications. Je suis également toujours heureux de lire vos commentaires et vos messages Twitter @RifkiNada .
Et au cas où vous seriez curieux de connaître mon travail, vous pouvez le consulter ici NadaRifki.com . 😜
Source link