前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >微信开发--微信小程序(三)

微信开发--微信小程序(三)

作者头像
生南星
发布于 2019-07-22 06:39:57
发布于 2019-07-22 06:39:57
21K00
代码可运行
举报
文章被收录于专栏:生南星生南星
运行总次数:0
代码可运行

这里只简单地做描述,详细的要去看官方文档哦.

1. 数据缓存

a. wx.setStorage(Object object)

数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。

wx.setStorageSync(string key, any data) 是 wx.setStorage(Object object)的同步版本. 示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wx.setStorage({
  key: 'key',
  data: 'value'
})

b. wx.getStorage(Object object)

从本地缓存中异步获取指定 key 的内容.

any wx.getStorageSync(string key) 是 wx.getStorage 的同步版本.

示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wx.getStorage({
  key: 'key',
  success(res) {
    console.log(res.data)
  }
})

c. wx.getStorageInfo(Object object)

异步获取当前storage的相关信息

Object wx.getStorageInfoSync() 是 wx.getStorageInfo 的同步版本.

示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wx.getStorageInfo({
  success(res) {
    console.log(res.keys)
    console.log(res.currentSize)
    console.log(res.limitSize)
  }
})

d. wx.removeStorage(Object object)

从本地缓存中移除指定 key.

wx.removeStorageSync(string key) 是 wx.removeStorage 的同步版本.

示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wx.removeStorage({
  key: 'key',
  success(res) {
    console.log(res)
  }
})

e. wx.clearStorage(Object object)

清理本地数据缓存.

wx.clearStorageSync() 是 wx.clearStorage 的同步版本.

示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wx.clearStorage()

2. 微信小程序字符串与变量名的拼接

示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<view wx:for="{{pic1}}" wx:key="{{index}}" class='small-img'>
   <image src="https://fuss10.elemecdn.com{{item.image_url}}" />
   <view>{{item.title}}</view>
</view>

3. 微信小程序参数传递(总结)

明确事件

  • 事件是视图层到逻辑层的通讯方式
  • 事件可以将用户的行为反馈到逻辑层进行处理
  • 事件可以绑定在组件上,当达到触发事件,就会执行逻辑层对应的事件处理函数
  • 事件对象可以携带额外信息,如id, dataset, touches

事件分类

事件分为冒泡事件和非冒泡事件

  1. 冒泡事件:当一个组件上的事件被触发后,该事件会向父节点传递
  2. 非冒泡事件:当一个组件上的事件被触发后,该事件不会向父节点传递

一般使用场景中,例如一个列表的item中有多个点击事件需要处理,就可以使用catchtap阻止向上冒泡

参数传递的几种方式:

1. 在wxml中使用navigator跳转url传递参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<navigator class="test-item" url="../../pages/test/test?testId={{testData.testId}}">
    ...
</navigator>

在js页面中onLoad方法中接收

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
onLoad: function (options) {
console.log('query',options)
},

2. 第二种方式 data-* || id(适合在本页面的四个文件中传值)

通过使用data - xxxx 的方法标识来传值,xxxx可以自定义取名 比my.wxml中的data-index。如何获取data-xxxx传递的值?

在js的bindtap的响应事件中: 通过数据解析一层层找到数据,var id=e.target.dataset.index(根据你的data-id的取名)

.wxml文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<button bindtap='delMovie' data-index="{{index}}">取消收藏</button>

.js文件的点击事件里接收

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
delMovie(e){
   //接收的数据
    console.log(e)
    const keymay = wx.getStorageInfoSync().keys;
    for (let i = 1; i < this.data.dataArr.length; i++) {
      if (e.currentTarget.dataset.index+1 === i){
        wx.removeStorage({
          key: keymay[i],
        })
      }
    }
},

注意:

1、data-名称 不能有大写字母,如果需要,可以通过 - (中划线)来连接单词,编译的时候小程序会将第二个单词首字母自动大写。图中代码是为了自己标志,所以第二个单词的首字母大写了,其实可以不用。data-* 属性中不可以存放对象。

2.package是保留关键字,不能作为变量使用

currentTarget和target的区别

target 触发事件的源组件。

currentTarget 事件绑定的当前组件。

如果你在父容器上绑定了事件并传参,当你点击父容器时,事件绑定的组件和触发事件的源组件是同一个元素,所以currentTarget 、target 都可以拿到参数,但是当你点击子元素时,target 就不是事件绑定的组件了,所以拿不到参数。

由于事件冒泡的机制,父容器上绑定的事件依然可以触发,所以currentTarget 依然可以拿到参数。

3. 本地存储

这个就是上面的数据缓存的方法,可以全局使用.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//存数据
wx.setStorageSync(this.data.detailsArr.title, this.data.detailsArr);
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//取数据
const keymay = wx.getStorageInfoSync().keys;
    for (let i = 1; i < this.data.dataArr.length; i++) {
      if (e.currentTarget.dataset.index+1 === i){
        wx.removeStorage({
          key: keymay[i],
        })
      }
}

4. 全局变量

1.在app.js中定义全局变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 //定义全局变量
globalData:{
    userInfo:null
    }
})

2. 在其中一个子页面将所需要的数据使用getApp()传递给全局变量userInfo;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var app=getApp();     // 取得全局App
app.globalData.userInfo = res.data.uid  // 取得全局变量需要的值

3. 在另一个子页面使用这个全局变量

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 获取全局变量并赋值给userId
userId: getApp().globalData.userInfo 

剩下不会的快去翻文档啦!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生南星 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
【Git笔记1】本地项目与GitHub远程仓库互联
秋招面试的时候,面试官就问了我:你会Git吗?我迟疑看着他,他微笑着说,入职前要抓紧时间好好学习一下。
小小詹同学
2019/11/11
6970
Git 简洁教程:本地项目如何与 GitHub 互连?
Git 是世界上最先进的分布式版本控制系统,简单来说就是帮助个人或者公司团队进行版本控制的一个强大的工具。我们熟知的 Linux 系统就是使用 Git 来进行版本控制的。
红色石头
2022/01/12
1.4K0
Git 简洁教程:本地项目如何与 GitHub 互连?
git/github使用完整教程(1)基础
像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。
全栈程序员站长
2022/08/20
2830
git/github使用完整教程(1)基础
Windows下git安装使用教程
git status 此命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
李智
2018/08/03
8K0
Git的使用1.Git简介2.安装3.远程仓库4.本地仓库
博客地址:https://ask.hellobi.com/blog/zhiji 欢迎大家来交流学习。
Python攻城狮
2018/08/23
3590
Git的使用1.Git简介2.安装3.远程仓库4.本地仓库
本地git链接到github
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
ConardLi
2019/09/08
6130
git 学习笔记 原
网站链接:https://www.liaoxuefeng.com/,现记录下学习笔记
tianyawhl
2019/04/04
5190
git 学习笔记
                                                                            原
Git - 连接 Github 远程仓库
本教程记录了本地Git与远程Github仓库连接的方法。设置成功后可以从远程仓库获取代码、将本地代码推送到远端。 准备工作 申请Github账号 基础Git语法知识 本地安装好Git bash运行环境 建立远程仓库 登录Github账号后点击右上角加号建立自己的仓库,名称自拟。 此处以test为例。 配置 SSH 秘钥 创建SSH密钥 在Git bash中执行命令: ssh-keygen -t rsa -C "abc@163.com" #此处填自己注册GitHub的邮箱 没有
为为为什么
2022/08/04
1.1K0
Git - 连接 Github 远程仓库
Git使用
    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
yaohong
2019/09/11
5480
Git使用
Git在码云上的使用指南:从安装到推送远程仓库
本文介绍了如何使用git在码云上创建远程仓库,并将本地的代码push到码云的远程仓库上。
用户11316056
2024/11/19
3750
Git在码云上的使用指南:从安装到推送远程仓库
史上最全​Git使用手册
Git使用手册 目录: Git是什么 基本概念 Git的诞生 Git的安装与配置 创建版本库 Git操作略览 远程仓库:git的杀招 分支管理 便签管理 使用github 自定义Git Git是什么 Git是目前世界上最先进的分布式版本控制系统(没有之一)。 对于文件操作,长期使用电脑办公的人想必深有体会。对于学生而言,当我们对报告、论文、工作进展等等一改再改、一版再版时,我们需要这样一个工具来帮我们记录我们对文件执行过的增删修改操作,甚至可以对版本进行回滚。这个时候, git就派上大用场啦。 基本概念 版
生信技能树
2018/03/08
2.4K0
史上最全​Git使用手册
Git入门学习到进阶1
描述:Git是目前世界上最先进的分布式版本控制系统(没有之一),如下面的Git生态化流程;
全栈工程师修炼指南
2022/09/28
6280
Git入门学习到进阶1
Git入门学习到进阶1
描述:Git是目前世界上最先进的分布式版本控制系统(没有之一),如下面的Git生态化流程;
全栈工程师修炼指南
2020/10/23
6880
Git入门学习到进阶1
初识git
安装 Ubuntu linux安装git:sudo apt-get install git 查看git版本:git --version
用户10325771
2023/03/01
2130
Git的使用(二):远程仓库
本地创建Git仓库适合自己一个人完成工程,但是实际情况中我们需要其他人来协作开发,此时就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份。常用的远程仓库就是github:https://github.com。
code随笔
2020/04/14
5420
Git的使用(二):远程仓库
专栏:001: git 简易教程12:概念介绍篇3 代码示例篇3:附属篇4:参考
1、git教程框架 序号 板块 01 概念介绍篇 02 代码示例篇 03 附属篇 2:概念介绍篇 什么是git? git是一个分布式版本控制软件,由Linus Torvalds创作,最初的目的是为
谢伟
2018/06/06
6600
【Git|GitHub|SSH|Sourcetree 下篇】GitHub|Sourcetree|SSH部署及Git-flow工作流
⌚️⌚️⌚️个人格言:时间是亳不留情的,它真使人在自己制造的镜子里照见自己的真相! 📖Git专栏:📑Git篇🔥🔥🔥 📖JavaScript专栏:📑js实用技巧篇,该专栏持续更新中🔥🔥🔥,目的是给大家分享一些常用实用技巧,同时巩固自己的基础,共同进步,欢迎前来交流👀👀👀 👉👉👉你的一键三连是对我的最大支持💙 💜 ❤️ 文章目录 ✅前言 ⭕️内容 🔶GitHub 🔶SSH Key 🔶Repository的克隆和推送 🔶可视化工具(Sourcetree) 🔶git工作流(git-flow) 🔳总结
好吃懒洋洋
2022/11/15
7880
【Git|GitHub|SSH|Sourcetree 下篇】GitHub|Sourcetree|SSH部署及Git-flow工作流
使用Git在GitHub创建远程仓库
在开发一个项目的时候,往往会用到Git,Git是分布式版本控制系统,说到分布式,就不得不提集中式,首先说说集中式和分布式的概念。
AsiaYe
2019/11/06
1.5K0
使用Git在GitHub创建远程仓库
[Git] 分布式版本控制 & 远程仓库协作
我们之前所有的操作,比如 git init 创建仓库,git add, git commit, git branch, git checkout, git merge 等等,都是针对本地版本库进行的。这个本地版本库就在你自己的电脑硬盘上,包含了完整的项目历史记录。
DevKevin
2025/06/11
1170
[Git] 分布式版本控制 & 远程仓库协作
Git常用操作指南
因为工作需求,最近又重新温习了一下Git操作,遂总结了一篇Git常用操作指南,方便日后学习查阅,本博客精简提炼了在开发过程中Git经常用到的核心命令,主要参考了《廖雪峰老师的Git教程》,希望对大家学习使用Git能带来帮助。
10JQKA
2019/07/22
8290
Git常用操作指南
相关推荐
【Git笔记1】本地项目与GitHub远程仓库互联
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档