Récemment, lors du développement de petits programmes en groupe, nous avons rencontré un sujet qui n'a jamais changé dans le front-end : page passage de valeur
Je viens de commencer à utiliser le passage de paramètres de chemin pour résoudre le problème, mais comme nous le savons tous :
La longueur maximale de l'URL de la requête HTTP Get dans chaque navigateur est différente. La longueur maximale de plusieurs navigateurs couramment utilisés et la situation de soumission après avoir dépassé la longueur maximale sont les suivantes. :
IE6.0 : La longueur maximale de l'URL est de 2 083 caractères et elle ne peut pas être soumise après avoir dépassé la longueur maximale de soumission.
IE7.0 : La longueur maximale de l'URL est de 2 083 caractères. Elle peut toujours être soumise après avoir dépassé la longueur maximale, mais seuls 2 083 caractères peuvent être transmis.
firefox 3.0.3 : La longueur maximale de l'URL est de 7 764 caractères. Elle ne peut pas être soumise une fois la longueur maximale dépassée.
Opera 9.52 : La longueur maximale de l'URL est de 7 648 caractères. Elle ne peut pas être soumise une fois la longueur maximale dépassée.
Google Chrome 2.0.168 : La longueur maximale de l'URL est de 7 713 caractères. Elle ne peut pas être soumise après avoir dépassé la longueur maximale.
Cela ne semble donc pas fiable.
Après avoir fait des recherches sur le site officiel, j'ai découvert qu'il existe deux façons de le faire "plus élégamment", qui bien sûr ne peuvent être comparées à vuex/flux.
Utilisez des variables globales
et définissez-les dans le projet app.js
globalData
App({ globalData:{ userInfo:'angeladaddy' } });
Utilisez-les si nécessaire :
getGlobalVar:function(){ var that=this; that.setData({ globalvar_str:JSON.stringify(getApp().globalData) }) }
Bien sûr, vous pouvez également attribuer des valeurs à tout moment :
onLoad:function(options){ getApp().globalData.userInfo+=' is an awesome man'; },
Effet :
2. Utiliser des modèles
Selon l'introduction officielle :
Définissez d'abord le modèle, utilisez l'attribut name
<template name="msgItem"> <view> <text> {{index}}: {{msg}} </text> <text> Time: {{time}} </text> </view> </template>Copier après la connexionEnsuite, utilisez le modèle
Utilisez l'attribut is pour déclarer le modèle que vous devez utiliser, puis transmettez les données requises par le modèle, telles que :
<template is="msgItem" data="{{...item}}"/>Copier après la connexionAttribuez une valeur à l'élément pour afficher les données du modèle
Page({ data: { item: { index: 0, msg: 'this is a template', time: '2016-09-15' } } })Copier après la connexionCela résout le problème du transfert de valeur de page de manière "duang~~~"
Postscript : Puisque les petits programmes peuvent utiliser toutes les fonctionnalités d'ES6, alors c'est quoi ce var that=this ? Pourquoi ne pouvons-nous pas utiliser les fonctions fléchées pour résoudre les problèmes de portée ? Revenez et réessayez.
[Recommandations associées]
1. Téléchargement complet du code source du mini-programme WeChat
2.Démo du jeu du mini-programme WeChat. Choisissez différents blocs de couleurs
3. Réveil WeChat : réalisation de conversation
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!