Maison > Applet WeChat > Développement de mini-programmes > Explication détaillée des exemples de stockage local de l'applet WeChat et de traitement de la page de connexion

Explication détaillée des exemples de stockage local de l'applet WeChat et de traitement de la page de connexion

巴扎黑
Libérer: 2018-05-15 14:26:55
original
13544 Les gens l'ont consulté

Contenu de l'instance

Interface de connexion
Traiter les données du formulaire de connexion
Traiter les données du formulaire de connexion (asynchrone)
Effacer les données locales
Interface de connexion :
Ajoutez la page de destination

app.json
Copier après la connexion

dans

pages/login/login
Copier après la connexion

et définissez-la comme entrée.
Explication détaillée des exemples de stockage local de l'applet WeChat et de traitement de la page de connexion
Après la sauvegarde, les fichiers pertinents seront automatiquement générés (très pratique).
Explication détaillée des exemples de stockage local de l'applet WeChat et de traitement de la page de connexion
Modifier le fichier de vue

login.wxml
Copier après la connexion
<!--pages/login/login.wxml-->
<view class="container">
  <form bindsubmit="formSubmit">
    <view class="row">
      <text>姓 名:</text>
      <input type="text" name="userName" placeholder="请输入用户名" />
    </view>
    <view class="row">
      <text>密 码:</text>
      <input type="password" name="userPassword" placeholder="请输入密码" />
    </view>
    <view class="row">
      <button type="primary" form-type="submit">登陆</button>
    </view>

  </form>
</view>
Copier après la connexion

Modifier le style de connexion

login.wxss
Copier après la connexion
/* pages/login/login.wxss */
.container{
  padding: 1rem;
  font-size: 0.9rem;
  line-height: 1.5rem;
  border-shadow: 1px 1px #0099CC;
}
.row{
  display: flex;
  align-items: center;
  margin-bottom: 0.8rem;
}
.row text{
  flex-grow: 1;
  text-align: right;
}
.row input{
  font-size: 0.7rem;
  color: #ccc;
  flex-grow: 3;
  border: 1px solid #0099CC;
  display: inline-block;
  border-radius: 0.3rem;
  box-shadow: 0 0 0.15rem #aaa;
  padding: 0.3rem;
}
.row button{
  padding: 0 2rem;
}
Copier après la connexion

Regardez le style :
Explication détaillée des exemples de stockage local de l'applet WeChat et de traitement de la page de connexion
attributs liés au formulaire :

< tr>



属性名类型说明
report-submitBoolean是否返回formId用于发送模板消息
bindsubmitEventHandle携带form中的数据触发submit事件,event.detail = { value : {"name":"value"} , formId:"" }
bindresetEventHandle表单重置时会触发reset事件


Nom de l'attributTypeDescription
report-submitBooléenS'il faut renvoyer formId pour l'envoi de modèles de messages
bindsubmit< td>EventHandleTransporte les données dans le formulaire pour déclencher l'événement de soumission, event.detail = { value : {"name":"value"} , formId:"" }
bindresetEventHandleL'événement de réinitialisation sera déclenché lorsque le formulaire est réinitialisé
Utilisé ici Come to bindsubmit, qui est utilisé pour traiter les données du formulaire soumis.
attributs liés aux entrées





属性名类型默认值说明
valueString
输入框的内容
typeStringtextinput的类型,有效值:text,number,idcard,digit,time,date
passwordBooleanfalse是否是密码类型
placeholderString
输入框为空时占位符
placeholder-styleString
指定placeholder的样式
placeholder-classStringinput-placeholder指定placeholder的样式类
disabledBooleanfalse是否禁用
maxlengthNumber140最大输入长度,设置为0的时候不限制最大长度
auto-focusBooleanfalse自动聚焦,拉起键盘。页面中只能有一个input设置auto-focus属性
focusBooleanfalse使得input获取焦点
bindchangeEventHandle
输入框失去焦点时,触发bindchange事件,event.detail={value:value}
bindinputEventHandle
除了date/time类型外的输入框,当键盘输入时,触发input事件,event.detail={value:value},处理函数可以直接return一个字符串,将替换输入框的内容。
bindfocusEventHandle
输入框聚焦时触发,event.detail = {value:value}
bindblurEventHandle
输入框失去焦点时触发,event.detail = {value:value}

< td>maxlength

Nom de l'attributTypePar défaut ValeurDescription
valeurChaîne




属性名类型默认值说明
sizeStringdefault有效值default, mini
typeStringdefault按钮的样式类型,有效值primary, default, warn
plainBooleanfalse按钮是否镂空,背景色透明
disabledBooleanfalse是否禁用
loadingBooleanfalse名称前是否带 loading 图标
formTypeString有效值:submit, reset,用于form组件,点击分别会触发submit/reset事件
hover-classStringbutton-hover指定按钮按下去的样式类。当hover-class="none"时,没有点击态效果
Entrée Contenu de la boîte
typeChaînetexteType de saisie, valeurs valides : texte , numéro, carte d'identité, chiffre, heure, date
mot de passeBooléenfauxQue ce soit est un mot de passe Tapez
espace réservéChaîne<🎜>Espace réservé lorsque la zone de saisie est vide
placeholder-styleString<🎜>Spécifiez le style de l'espace réservé< /tr>
placeholder-classStringinput-placeholderSpécifiez la classe de style de l'espace réservé
désactivéBooléenfalseSi il est désactivé
Nombre140Longueur maximale d'entrée, lorsqu'elle est définie sur 0, il n'y a pas de limite à la longueur maximale
auto-focus BooléenfalseMise au point automatiquement et tirez le clavier vers le haut. Il ne peut y avoir qu'une seule entrée dans la page qui définit l'attribut de mise au point automatique
focusBooléenfaux Mettre le focus sur le gain d'entrée
bindchangeEventHandle<🎜>Lorsque le la zone de saisie perd le focus, Déclencher l'événement bindchange, event.detail={value:value}
bindinputEventHandle<🎜 > À l'exception des zones de saisie de type date/heure, lorsqu'une saisie au clavier est effectuée, l'événement de saisie est déclenché, event.detail={value:value}, et la fonction de traitement peut renvoyer directement une chaîne, qui remplacera le contenu de la zone de saisie.
bindfocusEventHandle<🎜>Déclenché lorsque la zone de saisie est focalisée, événement. detail = {value:value}
bindblurEventHandle<🎜>Lorsque l'entrée la boîte perd le focus Déclencheur, event.detail = {value:value}
<🎜><🎜>attributs liés au bouton<🎜><🎜><🎜>< td>S'il y a une icône de chargement avant le nom
<🎜><🎜><🎜><🎜>< /tr>
Nom de l'attributTypeValeur par défautDescription
tailleChaînepar défautValeurs valides par défaut, mini
type< /td>StringdefaultType de style de bouton, valeurs valides primaire, par défaut, warn
plainBooleanfalseSi le bouton est creux et si la couleur d'arrière-plan est transparente
désactivé BooléenfalseS'il faut désactiver
chargementBooléen< /td>false
formTypeString AucunValeur valide : soumettre, réinitialiser, utilisée pour les composants de formulaire. Un clic déclenchera l'événement de soumission/réinitialisation
hover-classStringbutton-hoverSpécifie la classe de style du bouton enfoncé. Lorsque hover-class="none", il n'y a pas d'effet de clic

此Demo中将button的formType设置为submit用于激活表单提交事件。
实例二: 处理登陆表单数据
修改login.js

// pages/login/login.js
Page({
 data:{
  userName:&#39;&#39;,
  userPassword:&#39;&#39;,
 },

 formSubmit:function(e){
  console.log(e.detail.value);//格式 Object {userName: "user", userPassword: "password"}

  //获得表单数据
  var objData = e.detail.value;

  if(objData.userName && objData.userPassword){
   // 同步方式存储表单数据
   wx.setStorageSync(&#39;userName&#39;, objData.userName);
   wx.setStorageSync(&#39;userPassword&#39;, objData.userPassword);

   //跳转到成功页面
   wx.navigateTo({
    url: &#39;../index/index&#39;
   })
  }
 },

 //加载完后,处理事件 
 // 如果有本地数据,则直接显示
 onLoad:function(options){
  //获取本地数据
  var userName = wx.getStorageSync(&#39;userName&#39;);
  var userPassword = wx.getStorageSync(&#39;userPassword&#39;);

  console.log(userName);
  console.log(userPassword);
  if(userName){
   this.setData({userName: userName});
  }
  if(userPassword){
   this.setData({userPassword: userPassword});
  }

 },
 onReady:function(){
  // 页面渲染完成
 },
 onShow:function(){
  // 页面显示
 },
 onHide:function(){
  // 页面隐藏
 },
 onUnload:function(){
  // 页面关闭
 }
})
Copier après la connexion

这里使用到了wx.getStorageSync和wx.setStorageSync,这里说一下,上面这两个方法类似于HTML5的本地存储,属于同步存储方式。
这两个方法,使用很简单,列下参数:
wx.setStorageSync(KEY,DATA)





属性名类型必填说明
keyString本地缓存中的指定的key
dataObject/String需要存储的内容

wx.getStorageSync





属性名类型必填说明
KEYString本地缓存中的指定的key

修改一下login.wxml

<view class="row">
      <text>姓 名:</text>
      <input type="text" name="userName" placeholder="请输入用户名" value="{{userName}}" />
    </view>
    <view class="row">
      <text>密 码:</text>
      <input type="password" name="userPassword" placeholder="请输入密码" value="{{userPassword}}" />
    </view>
Copier après la connexion

这个小实例,会在登陆的时候,将登陆信息存到本地存储,当下次登陆时,如果本地存储中有相应信息,则直接填写上。
效果(再一次运行后,自动填写上了信息):

Explication détaillée des exemples de stockage local de l'applet WeChat et de traitement de la page de connexion
实例三: 处理登陆表单数据(异步)
这里采用异步的方式存放数据。
修改一下

login.js
Copier après la connexion
// pages/login/login.js
Page({
 data:{
  userName:&#39;&#39;,
  userPassword:&#39;&#39;,
 },

 formSubmit:function(e){
  console.log(e.detail.value);//格式 Object {userName: "user", userPassword: "password"}

  //获得表单数据
  var objData = e.detail.value;

  if(objData.userName && objData.userPassword){
   // 同步方式存储表单数据
   wx.setStorage({
    key:&#39;userName&#39;, 
    data:objData.userName
   });
   wx.setStorage({
    key:&#39;userPassword&#39;, 
    data:objData.userPassword
   });

   //跳转到成功页面
   wx.navigateTo({
    url: &#39;../index/index&#39;
   })
  }
 },

 //加载完后,处理事件 
 // 如果有本地数据,则直接显示
 onLoad:function(options){
  var that = this;
  //获取本地数据
  wx.getStorage({
   key: &#39;userName&#39;,
   success: function(res){
    console.log(res.data);
    that.setData({userName: res.data});
   }
  });
  wx.getStorage({
   key: &#39;userPassword&#39;,
   success: function(res){
    console.log(res.data);
    that.setData({userPassword: res.data});
   }
  });
 },
 onReady:function(){
  // 页面渲染完成
 },
 onShow:function(){
  // 页面显示
 },
 onHide:function(){
  // 页面隐藏
 },
 onUnload:function(){
  // 页面关闭
 }
})
Copier après la connexion

wx.setStorage(OBJECT)




属性名类型必填说明keyString是本地缓存中的指定的 keydataObject/String是需要存储的内容successFunction否接口调用成功的回调函数failFunction否接口调用失败的回调函数completeFunction否接口调用结束的回调函数(调用成功、失败都会执行)wx.getStorage(OBJECT)





属性名类型必填说明
keyString本地缓存中的指定的 key
successFunction接口调用的回调函数,res = {data: key对应的内容}
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

实例四: 清除本地数据
这里就不详细写了,直接介绍一下这两个清除本地数据的方法。

wx.clearStorage()
Copier après la connexion
wx.clearStorageSync()
Copier après la connexion

直接执行即可实现。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

您可能感兴趣的文章:

微信小程序(应用号)简单实例应用及实例详解
微信小程序 实战小程序实例
微信小程序 for 循环详解
微信小程序 WXML、WXSS 和JS介绍及详解
微信小程序 数据访问实例详解
微信小程序 参数传递详解
微信小程序 wx:key详细介绍
微信小程序 (十七)input 组件详细介绍
微信小程序 实现列表刷新的实例详解
微信小程序 (三)tabBar底部导航详细介绍
微信小程序 获取微信OpenId详解及实例代码

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal