微信小程序中按钮绑定点击事件(bindtap)实现页面跳转(redirectTo、navigataTo),并且进行数据传递( url: '../logs/logs?id=1')

定义两个页面:

在这里插入图片描述
在这里插入图片描述

绑定点击事件后代码:

在这里插入图片描述

实现跳转有两种方法:

1、navigateTo

  //实现登录跳转
  login:function(){
    wx.navigateTo({
      url: '../logs/logs',  //跳转页面路径
    })
  }

2、redirectTo

    //实现登录跳转
  login:function(){
    wx.redirectTo({
      url: '../logs/logs',  //跳转页面路径
    })
  }

这两种方式有什么区别???这先不急着解释。

下面由我一一道来。

1、首先先把index.js和logs.js文件里的内容清空。因为我是在这两个文件中定义这两个页面的,
      里面的代码是初始化就有的。如果你是新建的文件,就不用管这一步。

2、在这两个文件中分别都添加Page字段,代码会自动补全。

3、在每一个函数中添加输出console.log(),如图:

在这里插入图片描述
在这里插入图片描述
4、测试:
(1)、navigateTo 测试
点击编译:
在这里插入图片描述
点击“登录”按钮
在这里插入图片描述
(2)、redirectTo测试
点击编译:
在这里插入图片描述
点击“登录”按钮
在这里插入图片描述
5、对于这一两个的区别:
      redirectTo是把旧页面直接替换成新的页面相当于把旧页面给卸载了,不能返回到旧页面;
而navigataTo是把旧页面给隐藏,再运行新页面,还能返回。(留意:左上角)

页面之间数据传递:

添加输入框:
在这里插入图片描述

要进行数据传递,那么就要先获取数据,获取输入框的数据。

1、输入框绑定bindinput
在这里插入图片描述
2、该 index.js 中定义一个函数,把获取到的数据输出看看。

 nameinput:function(name){
    console.log(name)
  }

3、在输入框中填写数据,看输出什么
在这里插入图片描述
4、点击①中的小三角形
在这里插入图片描述
5、这时看到了刚输入的数据,那要怎样才能直接输出呢?参数调用

  nameinput:function(name){
    console.log(name.detail.value)
  }

6、再编译:在这里插入图片描述

获取完数据后,怎样进行传递呢?

直接在跳转页面路径上加 **?**后面接上要传递的数据,比如 name = 张三,
但是,我还有没有定义过一个变量,这时先要定义一个变量。
在这里插入图片描述
并把获取到输入框的数据赋值给他

  nameinput:function(name){
    this.setData({userName:name.detail.value})
  }

在跳转路径那添加数据
在这里插入图片描述

  //实现登录跳转
  login:function(){
    wx.navigateTo({
      url: '../logs/logs?userName='+this.data.userName,  //跳转页面路径
    })
  }

此时,已把数据传到 logs 页面去了

logs页面接收并显示

  onLoad: function (options) {
    this.setData({username:options.userName})
  }

onLoad:该生命周期函数是监听页面加载,加载数据的

最后编译:

在这里插入图片描述
在这里插入图片描述

全部源码:

index目录:

      js代码

//index.js
//获取应用实例
const app = getApp()
Page({

  /**
 * 页面的初始数据
 */
  data: {
      userName: null
  },

  /**
  * 生命周期函数--监听页面加载
  */
  onLoad: function (options) {
    console.log("index---onLoad---监听页面加载---登录页面")
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    console.log("index---onReady---监听页面初次渲染完成---登录页面")
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    console.log("index---onShow---监听页面显示---登录页面")
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    console.log("index---onHide---监听页面隐藏---登录页面")
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    console.log("index---onUnload---监听页面卸载---登录页面")
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    console.log("index---onPullDownRefresh---监听用户下拉动作---登录页面")
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    console.log("index---onReachBottom---页面上拉触底事件的处理函数---登录页面")
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    console.log("index---onShareAppMessage---用户点击右上角分享---登录页面")
  },
  //实现登录跳转
  login:function(){
    wx.navigateTo({
      url: '../logs/logs?userName='+this.data.userName,  //跳转页面路径
    })
  },
  //   //实现登录跳转
  // login:function(){
  //   wx.redirectTo({
  //     url: '../logs/logs',  //跳转页面路径
  //   })
  // }
  nameinput:function(name){
    this.setData({userName:name.detail.value})
  }

 })

      wxml代码

<view class="test1">

  <view class="input">

    <view class="name">姓名</view>
    <view class="username"><input bindinput="nameinput"/> </view>

  </view>
  
  <view class="login">
    <button type="primary" bindtap="login">登录</button>
  </view>


</view>

      wxss代码

page{
  height: 100%;
}
.test1{
  height: 100%;
  width: 100%;
  background-color: blanchedalmond;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.input{
  height: 20%;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.name{
  color: #888;
  font-size: 20px;
  width: 90%;
}

.username{
  border: solid #888 2px;
  height: 30px;
  width: 90%;
  font-size: 20px;
  padding-top: 8px;
}
logs目录:

      js代码

Page({

  /**
   * 页面的初始数据
   */
  data: {
    username:null
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({username:options.userName})
    console.log("logs---onLoad---监听页面加载---信息页面")
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {
    console.log("logs---onReady---监听页面初次渲染完成---信息页面")
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    console.log("logs---onShow---监听页面显示---信息页面")
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {
    console.log("logs---onHide---监听页面隐藏---信息页面")
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    console.log("logs---onUnload---监听页面卸载---信息页面")
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    console.log("logs---onPullDownRefresh---监听用户下拉动作---信息页面")
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {
    console.log("logs---onReachBottom---页面上拉触底事件的处理函数---信息页面")
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    console.log("logs---onShareAppMessage---用户点击右上角分享---信息页面")
  }
})

      wxml代码

<view class="test2">
  <view class="title">
    <view class="welcome">欢迎您</view>
    <view class="username" wx:if="{{!(username==null)}}">{{username}}</view>
  </view>
  <view class="back">
    <button type="primary" bindtap="back" >返回</button>
  </view>
</view>

      wxss代码

page{
  height: 100%;
}
.test2{
  height:100%;
  width: 100%;
  background-color: blanchedalmond;
  display: flex;
  flex-direction: column ;
  align-items: center;
  justify-content: space-around;
}
.title{
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  font-size: 50px;
}
.username{
  margin-top: 80px;
}
  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 微信小程序点击按钮跳转页面可以使用 `wx.navigateTo` 或 `wx.redirectTo` 方法。 首先,在按钮绑定事件调用方法,如: ``` <button bindtap='jumpPage'>跳转页面</button> ``` 然后,在页面的 js 文件实现跳转逻辑,如: ``` Page({ jumpPage: function() { wx.navigateTo({ url: '/pages/newpage/newpage' }) } }) ``` 注意,需要在项目的 `app.json` 文件注册新页面,才能在小程序使用。 使用 `wx.navigateTo` 方法会在当前页面下方加载新页面,而使用 `wx.redirectTo` 方法会替换当前页面,也就是关闭当前页面,并打开新页面。 希望这些信息能帮到你! ### 回答2: 要在微信小程序实现点击按钮跳转页面,首先需要在小程序的页面添加一个按钮组件,并设置按钮的事件绑定。在按钮的事件处理函数,可以通过调用微信小程序的导航API实现页面的跳转。 具体步骤如下: 1. 在小程序的页面,添加一个按钮组件: ``` <button bindtap="redirectToPage">点击跳转</button> ``` 2. 在小程序页面的js文件,定义按钮点击事件处理函数: ``` Page({ redirectToPage: function() { wx.navigateTo({ url: '跳转的页面路径' }) } }) ``` 其,`wx.navigateTo`是微信小程序的导航API,可以跳转到应用的某个页面。在`url`参数,填入跳转页面的路径,如`'pages/other/other'`。跳转的页面路径需要在小程序的配置文件`app.json`进行配置。 3. 在小程序的配置文件`app.json`,为跳转的页面路径进行配置: ``` { "pages": [ "pages/index/index", "pages/other/other" ], "window":{ "backgroundTextStyle":"light", "navigationBarBackgroundColor": "#fff", "navigationBarTitleText": "微信小程序", "navigationBarTextStyle":"black" } } ``` 在`pages`数组,添加需要跳转的页面路径,以使跳转路径有效。 通过以上步骤,就可以在微信小程序实现点击按钮跳转页面的功能了。 ### 回答3: 要实现微信小程序点击按钮跳转页面,可以按照以下步骤进行操作: 1. 在当前页面的.wxml文件,定义一个按钮,并设置相应的样式和事件绑定,例如: ``` <button bindtap="navigateToPage">跳转到新页面</button> ``` 2. 在当前页面的.js文件,编写相应的事件处理函数,例如: ``` Page({ navigateToPage: function() { wx.navigateTo({ url: '/pages/newPage/newPage' }) } }) ``` 3. 在app.json文件配置新页面的路径和窗口样式,例如: ``` { "pages": [ "pages/index/index", "pages/newPage/newPage" ], "window": { "backgroundColor": "#ffffff", "navigationBarTitleText": "微信小程序" } } ``` 4. 在新页面的.wxml文件,定义相应的内容和样式。 以上就是在微信小程序实现点击按钮跳转页面的基本步骤。需要注意的是,页面间的跳转可以使用`wx.navigateTo`方法跳转到新页面,也可以使用`wx.redirectTo`方法进行页面重定向,具体使用哪种方法根据需求来决定。同时,还可以使用`wx.navigateBack`方法返回上一页,或者使用`wx.switchTab`方法切换到指定的tab页。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值