IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 小程序心知天气API获取数据 -> 正文阅读

[移动开发]小程序心知天气API获取数据

小程序的变量使用,全局变量,其他函数的变量
app中的global和page的data中的变量
小程序页面之间传递数据和变量,数据可以是写死的数据也可以是在A页面得到的变量值,传递给B页面

全局变量的使用:
在app.js中加入

App({
   globalData:{
     global:'global3'
   }
})

在任何一个页面都可以使用该变量,也可以更改

onLoad: function (options) {
    var app=getApp()  //如果不写这句就将下句改成getApp().globalData.global
    var global=app.globalData.global
    console.log(global)   //此时虽然能显示global的内容,不使用setData也是不会显示在页面的
    }

此时可以看到调试器显示global3,
同一个页面,一个函数调用另一个函数的变量:
只要这个变量在该页面js的data里定义过,其他函数都可以进行调用this.data.变量名,按照代码运行的顺序,变量名进行改变,读取,
var that=this的使用
this作用域分析:
1.在Page({})里面,this关键字指代Page({})整个对象
2.因此可以通过this关键字访问或者重新设置Page({})里data的变量
3.然而在loadData函数中使用了wx.request({})API这个方法导致在wx.request({})里没办法使用this来获取Page({})对象
4.虽然在wx.request({})里没法使用this获取Page({})对象,但是可以在wx.request({})外面先把this存在某个变量中,所以就有了var that =this 这个声明。此时that指代Page({})整个对象,这样子就可以在wx.request({})里使用that访问或者重新设置Page({})里data的变量

 getWeather:function(){
    var that =this;
    wx.request({
    url:"https://api.seniverse.com/v3/weather/now.json",
      data:{location:that.data.region[1],
      key:'******'},
      success:function(res){
        console.log(res.data); //输出result:Array这行
        console.log(that.data.region[0]),
     
       that.setData({now1:res.data.results[0].now})
      }
    })
    console.log(this.data.now1)  //此时输出都还是0是初始值
  },

如果我们想将这个页面的数据或者获取的变量传递给下个页面:

  bnt(){
    let str={text:this.data.now1.text,
             temperature:this.data.now1.temperature,
             code:this.data.now1.code}
    let now= JSON.stringify(str)
    //let now=3
    wx.navigateTo({
      url: '../next/next?now1='+now
    })
  },

按钮功能跳转到下一个页面pages/next/next 将本页面的now1的值传输过去,如果是一个简单的给定的值可以直接写在url里,例如:‘…/next/next?now1=3’,也可以给一个变量赋值,比如,
let now=3, url: ‘…/next/next?now1=’+now,如果数据比较多,那么用json格式传输,在接收的页面进行解码,接受页面:

 onLoad: function (options) {
    console.log(options)
    let model = JSON.parse(options.now1)
    this.setData({
      num:model,
      global:global
    })
  },

效果如图:
在这里插入图片描述
此时我们传输成了字符串,页面进行调用即可

<view>{{num.text}}</view>

顺便说一下var和let的区别
let声明的变量是局部变量,该变量只会在最靠近{ }内的范围有效,出了{}之后,该变量就不能用了,否则会报该变量未定义的错误。
let声明的变量只在它所在的代码块有效。
var申明的变量是全局变量,其作用域为所在的函数内。
var命令会发生”变量提升“现象,即变量可以在声明之前使用。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 01:04:20  更:2022-09-30 01:06:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/20 1:36:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码