微信开发者工具 小程序 navigator组件 url传参

这篇具有很好参考价值的文章主要介绍了微信开发者工具 小程序 navigator组件 url传参。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        在微信小程序编写过程当中,为避免内容重复、页面过多造成的代码体量大的问题,笔者通过navigator组件 url传参解决了这个问题:

        一、问题描述

        A页面中存在a,b,c,d四个按钮,分辨跳转到新页面。但是制作4个新页面明显会造成工作量大和代码体量大。同时,这四个按钮的新页面格式一样,仅仅是内容不同,即四个页面可以用相同的.wxml、.wxss、.js文件表示。

        二、新建页面

        原本需要新建5个页面(A+a,b,c,d)的情况,其实只需要新建2个页面(A+B),示意图如下。

微信开发者工具 小程序 navigator组件 url传参

 在app.js文件中添加两个页面

"pages": [
    "pages/A/A",
    "pages/B/B"
  ],

        三、页面构建

        此时构建A页面和B页面基本代码如下:

        A.wxml(初始版):此时在模拟器中依次点击四个按钮,均可跳转到B页面。

<!--pages/A/A-->
<view class="container">
  <text>pages/A页面/A页面</text>
</view>

<view class="container">
  <navigator url="../B/B"><view>按钮a</view></navigator>
  <navigator url="../B/B"><view>按钮b</view></navigator>
  <navigator url="../B/B"><view>按钮c</view></navigator>
  <navigator url="../B/B"><view>按钮d</view></navigator>
</view>

        B.wxml(初始版):在B页面中简单设置输出文字段的代码。

<!--pages/B/B.wxml-->
<text>pages/B/B.wxml</text>

<view class="container">
  <view>
    <view>
      <text>topic:{{topic}}\n</text>
      <text>content:{{content}}</text>
    </view>
  </view>
</view>

        B.js(初始版)

Page({

  /**
   * 页面的初始数据
   */
  data: {
    topic:"",
    content:""
  }
})

#测试——B.js与B.wxml之间的数据传输

Page({

  /**
   * 页面的初始数据
   */
  data: {
    topic:"123",
    content:"321"
  }

})

微信开发者工具 小程序 navigator组件 url传参

 测试结果:可正常传输数据

        四、连接数据库

        1.使用微信开发者工具的“云开发”功能新建数据库B,并输入4条记录。

微信开发者工具 小程序 navigator组件 url传参

         2.修改数据库读写权限:所有人可读写

微信开发者工具 小程序 navigator组件 url传参

         3.B.js连接数据库B

const DB = wx.cloud.database().collection("B")

Page({

    ……

})

        4.B.wxml通过B.js连接数据库

        获取数据:B.wxml

<!--pages/B/B.wxml-->
<text>pages/B/B.wxml</text>

<view class="container">
    <view wx:for="{{ne}}">
      <view>
        <view>
          <text>topic:{{item.topic}}</text>
          <text>content:{{item.content}}</text>
        </view>
      </view>
    </view>
</view>

        B.js

const DB = wx.cloud.database().collection("B")

Page({
  getData() {
    DB.where({
      type:"a"
    }).
    get({
      success: res => {
        console.log(res.data)
        this.setData({    //收集数据到ne中并返回
          ne: res.data
        })
      },
      fail(res) {
        console.log("查询失败", res)
      }
    })
  },

  /**
   * 页面的初始数据
   */
  data: {
    topic:"",
    content:""
  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.getData()
  }

})

        此时,仅得到type:"a"的记录,如下

微信开发者工具 小程序 navigator组件 url传参

         B.wxml通过B.js连接数据库成功

        五、navigator组件 url传参

        A.wxml中navigator组件 url传参

<!--pages/A/A-->
<view class="container">
  <text>pages/A页面/A页面</text>
</view>

<view class="container">
  <navigator url="../B/B?type=a"><view>按钮a</view></navigator>
  <navigator url="../B/B?type=b"><view>按钮b</view></navigator>
  <navigator url="../B/B?type=c"><view>按钮c</view></navigator>
  <navigator url="../B/B?type=d"><view>按钮d</view></navigator>
</view>

        B.js设置接收参数函数

const DB = wx.cloud.database().collection("B")

Page({
  getData() {
    DB.where({
      type:this.data.type    //修改为传参的数据
    }).
    get({
        ……
    })
  },

  /**
   * 页面的初始数据
   */
  data: {
    topic:"",
    content:"",
    type:""    //声明一个传参的数据
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      type:options.type
    })
  }

})

        效果如下,达到预期效果:

微信开发者工具 小程序 navigator组件 url传参

         六、优化建议

        本文仅仅介绍了实现该功能的基本要素,下面进行优化的建议:

        1.美观展示B界面;

        2.数据库中记录中的topic字段和content字段可以存储不同的内容,只要type字段的内容相同即可;

        3.url地址还可以传递多个参数,用“&”隔开即可:

<navigator url="../B/B?type=a&topic=AAA"><view>按钮a</view></navigator>

        4.未完待续,一起进步!文章来源地址https://www.toymoban.com/news/detail-508668.html

到了这里,关于微信开发者工具 小程序 navigator组件 url传参的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【微信小程序】微信开发者工具安装less插件

    微信小程序:本文主要是关于如何在微信开发者工具中安装less插件 不知道大家有没有像我一样习惯在vscode里面用惯了less,当需要用微信开发者工具开发小程序时,如果没有这个会有些不习惯,下面就简单介绍一下,如何在微信开发者工具中安装less插件。 less:是一个CSS预处

    2024年02月04日
    浏览(49)
  • 微信小程序:微信开发者工具安装less插件

    微信小程序:本文主要是关于如何在微信开发者工具中安装less插件 不知道大家有没有像我一样习惯在vscode里面用惯了less,当需要用微信开发者工具开发小程序时,如果没有这个会有些不习惯,下面就简单介绍一下,如何在微信开发者工具中安装less插件。 less:是一个CSS预处

    2024年02月14日
    浏览(59)
  • 【微信小程序】--注册小程序账号&安装开发者工具(一)

    💌 所属专栏:【微信小程序开发教程】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘   大家好,又见面了,

    2024年01月17日
    浏览(85)
  • 微信开发者工具开发小程序代码自动热加载/重载/部署

    微信小程序基础库 2.12.2 默认情况下,使用微信开发者工具开发小程序时,每次保存代码都会重启微信小程序,即每次都模拟器都返回到首页。有没有办法既更新模拟器中的小程序,又保持 在当前页呢?有的,启用代码热重载。 从微信小程序基础库(实测) 2.12.2 开始有了“

    2024年02月11日
    浏览(38)
  • 【微信小程序】微信Web开发者工具下载及安装

    🏆今日学习目标:微信Web开发者工具下载及安装 😃创作者:颜颜yan_ ✨个人主页:颜颜yan_的个人主页 ⏰预计时间:25分钟 🎉专栏系列:微信小程序开发 什么是微信小程序? 小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者

    2024年02月09日
    浏览(56)
  • 快速上手微信小程序(纯原生)基于微信开发者工具+云开发

    最近开发一个小程序。因为体量实在不大,两张表,几个接口。便打算写原生的代码。没有使用uniapp等框架。记录一下一个小程序从搭建到审核发布的那些坑和经验做为学习笔记。 几个网站请收藏 你的小程序需要开发工具: 保姆级传送门 你的小程序需要一个身份证: 微信公

    2024年02月10日
    浏览(48)
  • vscode开发小程序项目并在微信开发者工具运行

    需求:vscode开发uniapp之后在微信开发者工具运行,更改的时候微信开发者也同步更改 创建微信小程序所需插件,在vscode的插件管理里面安装就可以了 1.微信小程序开发工具 2.vscode weapp api 3.vscode wxml 4.vscode wechat 1.创建小程序命令 这里的uniapp-vue是项目名称,不能大写 2.选择un

    2024年02月09日
    浏览(45)
  • 微信小程序实现简单的点击切换功能(微信开发者工具)

    📚文章目录 🔗首先创建一个简单的切换按钮📋 如图下  📋wxml代码  📋wxss代码 🔗但是这个元素是无法点击的,所以要添加一个点击事件到这两个元素里面  📋js代码(在page({})里面添加) 📋wxml代码  🔗class使用三元表达式来继续点击判断  🔗使用bindtap绑定事件  事件的

    2024年02月09日
    浏览(79)
  • 微信开发者工具的下载及小程序项目创建

    1.注册并微信扫码登录微信公众平台(微信公众平台) 完成如下所示相关信息(保证所填写信息真实有效,以免后续使用出现不必要的问题) 2.点击“普通小程序开发者工具”,跳转至下图所示页面  3.开发工具的准备 点击“微信开发者工具”,跳转至下图所示页面。选择系

    2024年02月10日
    浏览(45)
  • 【HbuilderX+微信小程序开发者工具解决报错问题】

    一定要正确的配置运行终端 包括 浏览器 、 小程序 安装路径等,还包括小程序的appid,并且要和申请的帐号匹配的登录才能正常的运行 进入微信公众平台https://mp.weixin.qq.com/登录 扫码确认 点击 首页-》配置服务-》开发设置 ,查询appId 如下图 问题描述 [微信小程序开发者工具

    2024年02月09日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包