【小程序】小程序技术训练营学习笔记-part2

情到浓时终转凉″ 提交于 2020-03-06 01:49:40

个人笔记部分,无参考意义
小程序与JavaScript

JavaScript入门

控制台Console

变量与赋值

这个undefined是console.log()这个函数的返回值,每个函数都有返回值,如果函数没有提供返回值,会返回 undefined。

你会看到一个返回值,就像下面这样
在这里插入图片描述
let是一个新的变量声明方式,以前我只知道var
javascript中let和var的区别
然后我发现了定义变量可以不用varlet
JavaScript中使用var定义变量和不使用var定义变量的区别
在这里插入图片描述
js的变量是否可以删除 可以被delete

操作数组

常量

const创建的是只读引用,与java里的final变量一样,引用不可改,但引用的内容可改

全局对象wx

wx提供了很多功能的API接口,文档里说过

大多数 API 都是异步 API,如 wx.request,wx.login 等。这类 API 接口通常都接受一个 Object 类型的参数,这个参数都支持按需指定以下字段来接收接口调用结果

函数需要的参数有
在这里插入图片描述
函数返回的数据为
在这里插入图片描述

而success函数就是执行成功时候的回调函数,例如

wx.getNetworkType({
  success(res) {
    console.log(res)
  }
});

控制台会把res打印出来,如下所示

{errMsg: "getNetworkType:ok", networkType: "4g"}

可以看到返回的是一个对象,这个对象有两个属性,这两个属性都是方法调用结束后返回的数据属性名
在比如

wx.navigateTo({
  url: 'test?id=1',
  events: {
    // 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
    acceptDataFromOpenedPage: function(data) {
      console.log(data)
    },
    someEvent: function(data) {
      console.log(data)
    }
    ...
  },
  success: function(res) {
    // 通过eventChannel向被打开页面传送数据
    res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
  }
})

上面这个方法还需要url等参数,然后传入的参数的格式和json差不多,注意最后那个success函数的传入方式,也是跟json数据的定义格式差不太多

点击事件

我查了button的文档,并没有看见这个组件下面有叫做bindtap的属性,倒是在公共属性部分,可以看到所有组件都有以下属性bind* / catch*

滚动到指定的选择器的位置这个功能在手机上模拟是可用的,在模拟器上不可用

模态对话框

modalTap(){
    wx.showModal({
      title: '学习声明',
      content: '今天有点烦',
      showCancel:true,
      confirmText:"确定",
      cancelText:'fuck',
      success:function(res){
        if(res.confirm){
          console.log("用户点击确定")
        }else if(res.cancel){
          console.log('cancel')
        }
      }
    })
  },

页面路由

所谓页面路由,我看完教学和案例的理解就是,管理页面的方式
页面路由
由于小程序里显示的页面只有一个,因此正如文档中描述的那样

框架以栈的形式维护了当前的所有页面

栈:先进后出

<button bindtap="navigateTo">保留页面并跳转</button>
<button bindtap="switchTab">跳转到组件Tab页</button>
<button bindtap="redirectTo">关闭当前页面跳转</button>
navigateTo() {
    wx.navigateTo({
        url: '/pages/home/imgshow/imgshow'
    })
},
switchTab() {
    wx.switchTab({
        url: "/pages/list/list",
    })
},
redirectTo() {
    wx.redirectTo({
        url: '/pages/home/imgshow/imgshow'
    })
},

同时imgshow.wxml的页面如下

<button bindtap="navigateBack">返回上一页</button>
navigateBack() {
    wx.navigateBack({
      delta: 1
    })
  }

这里我们对比navigateToredirectTo
这是首页
在这里插入图片描述

点击第一个按钮,跳转页面如下所示,下面这两个按钮都可以按,并且能成功返回到home页面
在这里插入图片描述

而如果我们刚刚点了第三个按钮(关闭当前页面跳转),跳转结果如下,点击返回上一页就没办法返回上一页了
在这里插入图片描述
原因文档也写的很清楚:
redirectTo:页面重定向 当前页面出栈,新页面入栈 (意思hi关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面)
navigateTo:打开新页面 新页面入栈 (保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!