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 : le passage de valeur de page
Je viens de commencer à utiliser le passage de paramètres de chemin pour résoudre le problème, mais comme nous le savons tous :
Chaque navigateur HTTP La longueur maximale de l'URL de la requête Get n'est pas la même. 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.
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 après avoir dépassé la longueur maximale.
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.
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!