微信小程序--》从模块小程序项目案例23.10.09

news2024/9/22 1:11:52

配置导航栏

导航栏是小程序的门户,用户进来第一眼看到的便是导航栏,其起着对当前小程序主题的概括。而我们 新建的小程序 时,第一步变开始配置导航栏。如下:

配置tabBar

因为配置tabBar需要借助字体图标,我这里平常喜欢使用阿里云字体图标库,所以需要先去阿里云库中找到相关图标:其官方网站:网站链接 。

随便找两个,一个作为未点击(未激活)状态,另一个作为已点击(已激活)状态:

图标就随便选了,在正式项目必须严谨了,选好图标命名如下

准备好图片资源之后就要在 app.json 文件中配置tabBar了,配置代码如下:

{
  "pages":[
    "pages/home/home",
    "pages/message/message",
    "pages/contact/contact",
    "pages/logs/logs",
    "pages/logins/logins",
    "pages/index/index"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#008c8c",
    "navigationBarTitleText": "阿里工作台",
    "navigationBarTextStyle":"white"
  },
  
 
  "tabBar": {
    "list": [{
      "pagePath": "pages/home/home",
      "text": "首页",
      "iconPath": "/images/tabBar/home.png",
      "selectedIconPath": "/images/tabBar/home-active.png"

    },{
      "pagePath": "pages/message/message",
      "text": "消息",
      "iconPath": "/images/tabBar/message.png",
      "selectedIconPath": "/images/tabBar/message-active.png"
 
    },{
      "pagePath": "pages/contact/contact",
      "text": "联系我们",
      "iconPath": "/images/tabBar/contact.png",
      "selectedIconPath": "/images/tabBar/contact-active.png"
    }]
  },

  "style": "v2",
  "sitemapLocation": "sitemap.json"
}

页面跳转

打开pages/cart/cart.wxml,添加跳转按钮,代码如下:

<view class="container">
  <button bindtap="btnTap" type="primary">跳转到登录页</button>
</view>

打开pages/cart/cart.js,添加跳转按钮,代码如下:

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

  /**
   * 页面的初始数据
   */
  data: {

  },

// 事件处理函数
btnTap() {
  wx.navigateTo({
    url: '/pages/logins/logins',
  })
},


  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

这时候界面如下:点击"跳转到第二页"按钮,页面跳转到logins

每一页都是一个webview,wx.navigateTo每打开一个页面,就是打开一个webview

需要注意的是:wx.navigateTo打开页面的栈的数量上限是10个,也就是说最多可以连续打开10个页面。

获取地理位置

这里主要要使用到wx.getLocation,用于获取当前位置信息,代码如下:

// pages/cart/cart.js

//获取当前位置信息
btnTapGet() {
  console.log("打开");
  wx.getLocation({
    type: 'wgs84',
    success(res) {
      console.log(res);
    }
  });
},

btnTapChoose() {
  console.log("打开");
  wx.chooseLocation({
    success(res) {
      console.log(res);
    }
  });
},

点击按钮,执行btnTapGet方法,首先会弹出授权

以下获取地理位置信息的API,需要在app.json做申明配置:

  "requiredPrivateInfos": [
    "getLocation",
    "chooseLocation"
  ],

(二) 工具类文件

目录中有一个“utils”文件夹,它用来存放工具栏的js 函数,如放置日期格式化函数,时间格式化函数,等一些常用的函数。定义完这些函数后, 要通过module.exports将定义的函数名称注册进来,在其他的页面才可以使用,如图所示为时间格式化工 具类文件。

在utils.js中自定义公共函数并导出

  • 自定义函数如下!务必自行配置导出 
//自定义方法
function toStr(e){
  return e="你好,"+e
}

module.exports = {
  formatTime,toStr //方法名即可,多个用逗号分开
}

在index.js中引入公共文件util.js 并进行页面初始化赋值操作

import util from "../../utils/util"

在onLoad函数中进行操作

 this.setData({
      /*loginTime: formatTime(new Date()),
      motto: "您好! Jone" */
      loginTime: util.formatTime(new Date()),
      motto: util.toStr('张三')

(五) 自定义函数

.js:页面的 JavaScript 逻辑代码

除了初始化数据和生命周期函 数,Page 中还可以定义一些特殊 的函数:事件处理函数。在渲染层 可以在组件中加入事件绑定,当达 到触发事件时,就会执行 Page 中 定义的事件处理函数

Page 是一个页面构造器,这个构造器就生成了一个页面。在生成页面的时候,小程序框架会把 data 数据和 index.wxml 一起渲染出最终的结构,于是就得到了你看到的小程序的样子。

在渲染完界面之后,页面实例就会收到一个 onLoad 的回调,你可以在这个回调处理你的逻辑

// pages/logins/logins.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  onTap() {
    wx.showToast({
      title: 'Hello World',
      icon: 'success',
      duration: 2000
    })
  },

  clickMe: function() {  
		console.log('view tap')
	},

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },


WXML 模板

.wxml:页面的 WXML 模板文件

<view bindtap="clickMe"> click me </view>

<button class="button" bindtap="onTap">Click Me</button>

组件

小程序提供了丰富的基础组件给开发者,开发者可以像搭积木一样,组合各种组件拼合成自己的小程序

例如,你需要在界面上显示地图,你只需要这样写即可:

使用组件的时候,还可以通过属性传递值给组件,让组件可以以不同的状态去展现,例如,我们希望地图一开始的中心的经纬度是广州,那么你需要声明地图的 longitude(中心经度) 和 latitude(中心纬度) 两个属性:

组件的内部行为也会通过事件的形式让开发者可以感知,例如用户点击了地图上的某个标记,你可以在 js 编写 markertap 函数来处理:

当然你也可以通过 style 或者 class 来控制组件的外层样式,以便适应你的界面宽度高度等等。

<map bindmarkertap="markertap" longitude="广州经度" latitude="广州纬度"></map>

wx.getLocation({
  type: 'wgs84',
  success: (res) => {
    var latitude = res.latitude // 经度
    var longitude = res.longitude // 纬度
  }
})

调用微信扫一扫能力,只需要:

wx.scanCode({
  success: (res) => {
    console.log(res)
  }
})

(六) setData设值函数


Page.prototype.setData()设值函数:setData 函数用于将数据从逻辑层发送到视图层,同时 改变对应的 this.data 的值。
setData() 参数格式:接受一个对象,以 key、value 的形式表示将 this.data 中的 key 对应的 值改变成 value
其中, key 可以非常灵活,以数据路径的形式给出,如 array[2].message,a.b.c.d,并且不 需要在this.data 中预先定义。
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1075760.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

uniapp快速入门系列(3)- CSS技巧与布局

章节三&#xff1a;CSS技巧与布局 1. uniapp中的样式编写2. 常见布局技巧与实例解析2.1 水平居中布局2.2 垂直居中布局2.3 等高布局2.4 响应式布局 3. CSS动画与过渡效果 在uniapp中&#xff0c;我们使用CSS来设置页面的样式和布局。本章将介绍一些在uniapp中常用的CSS技巧和布…

区块链技术在金融领域的应用场景

区块链技术在金融领域具有广泛的应用场景&#xff0c;它可以提供更安全、透明、高效和可信的金融服务。以下是一些区块链金融的主要应用场景&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.数字货币…

多媒体播放软件 Infuse mac中文特点介绍

Infuse mac是一款多媒体播放器应用&#xff0c;它支持播放多种格式的视频文件、音频文件和图片文件&#xff0c;并且可以通过AIrPlay将媒体内容投放到其他设备上。Infuse还支持在线视频流媒体播放和本地网络共享&#xff0c;用户可以通过它来访问家庭网络上的媒体文件。 Infuse…

【elasticsearch】elasticsearch8.0.1使用rpm包安装并启用TLS

背景 公司的业务需要在加密的情况下使用&#xff0c;为此&#xff0c;研究测试了一下es8是如何启用TLS的。以下是测试使用过程。 x-pack了解 在 Elasticsearch 7.11.0 版本及更高版本中&#xff0c;X-Pack 功能在默认情况下已经整合到 Elastic Stack 的各个组件中&#xff0…

黑盒测试方法:原理+实战

目录 一、如何设计测试用例 二、黑盒测试常用方法 1、基于需求进行测试用例的设计 2、等价类 3、边界值 4、判定表分析法&#xff08;因果分析法&#xff09; 5、正交表 6、场景设计法 三、案例补充 1、使用Fiddler模拟弱网 2、针对一个接口该如何测试 一、如何设计测试…

低成本开发一款苹果ios安卓apk双端的APP应用制作用什么语言研发浅谈一些低代码平台

这不是很懂代码的同学们还是比较多的吧&#xff0c;公司想开发一款app不想成本增加太大&#xff0c;不知道怎么找团队做事情&#xff0c;找什么语言的呢&#xff1f;都是最后能组成一个app但是不知道从哪里下手可以看看兄弟我的这篇文章哈&#xff0c;虽然不是很厉害&#xff0…

区块链技术-比特币数据结构

背景 随着近几年区块链技术的迅速发展&#xff0c;越来越多的行业正在将区块链技术应用到实际中去。例如&#xff0c;金融、物流、交易所等行业都开始尝试使用区块链技术来替代传统技术。伴随着区块链迅速发展的期间&#xff0c;诞生了比特币&#xff08;BTC&#xff09;、以太…

深度学习DAY1:神经网络NN;二元分类

深度学习笔记 DAY1 深度学习基本知识 1.神经网络 1.1 单一神经元 所有神经元将房屋大小size作为输入x,计算线性方程&#xff0c;结果取max&#xff08;0&#xff0c;y&#xff09;,输出预测房价y ReLU函数&#xff08;线性整流函数&#xff09;–max&#xff08;0&#xf…

二叉树的层序遍历 --力扣

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;…

vue3中动态设置ref,如表格中使用级联选择器

需求&#xff1a;vue3中有一个表格&#xff0c;表格里是表单项&#xff0c;用户可以输入或选择&#xff0c;有一项是一个级联选择器&#xff0c;需要使用到ref&#xff0c;然后通过getCheckedNodes()方法获取到这一项选择的数据。 数据源是一个级联选择器&#xff0c;如果这个表…

c++视觉处理-----膨胀腐蚀

c视觉处理膨胀腐蚀 膨胀腐蚀的区别 膨胀&#xff08;Dilation&#xff09;和腐蚀&#xff08;Erosion&#xff09;是形态学图像处理中的两种基本操作&#xff0c;它们有不同的效果和应用&#xff1a; 膨胀&#xff08;Dilation&#xff09;&#xff1a; 膨胀操作用于增加物体…

Compose加载本地图片和网络图片

加载本地图片 Image(modifier Modifier.fillMaxWidth().height(200.dp),painter painterResource(id R.drawable.img),contentDescription "描述",//0~1完全透明到完全不透明设置alpha 1f,//图片拉伸或裁剪设置contentScale ContentScale.Crop ) 加载本地图…

AntV G6 dom节点绑定事件问题

问题&#xff1a; graph.on("node:click"&#xff0c; e > {})监听不到dom节点里面对应事件 比如dom节点里面自定义按钮和输入框&#xff0c;需要监听按钮点击和输入框聚焦事件 效果如下&#xff1a; 对应代码&#xff1a; <template><div id"c…

数据结构:排序- 插入排序(插入排序and希尔排序) , 选择排序(选择排序and堆排序) , 交换排序(冒泡排序and快速排序) , 归并排序

目录 前言 复杂度总结 预备代码 插入排序 1.直接插入排序: 时间复杂度O(N^2) \空间复杂度O(1) 复杂度&#xff08;空间/时间&#xff09;&#xff1a; 2.希尔排序&#xff1a; 时间复杂度 O(N^1.3~ N^2&#xff09; 空间复杂度为O(1) 复杂度&#xff08;空间/时间&#…

WiFi标签注册流程

7.5寸桌牌&#xff1a;K: 注册键&#xff0c;R: 复位键 长按K键不动&#xff0c;绿灯长亮&#xff0c;再按一下R键&#xff0c;等待绿灯快闪后就可以松开按键&#xff0c;绿灯变慢闪&#xff0c;设备即可进入配置注册模式。 4.2寸标签&#xff1a;右键: 注册键&#xff0c;背后…

网络安全70部学员第二阶段项目验收顺利结束

网络安全70部的小伙伴 经过近三个月的学习 专业技能都有了质的飞跃 为了检验学员们的学习情况 同时巩固所学知识点&#xff0c;查漏补缺 近日&#xff0c;进行了网络阶段项目验收工作 项目背景&#xff1a;某公司由市场部、客服部、产品部、行政部、财务部、人事部以及总经…

GNOME 45 动态三层缓存补丁更新

导读GNOME 45 "Rīga" 上周已正式发布&#xff0c;此版本虽然有许多针对桌面环境的改进&#xff0c;但上游缺少的一个功能是 Canonical 主导的 Mutter 动态三层缓存。 动态三层缓存用于在需要时提升性能&#xff0c;并且已被证明有助于提高桌面渲染性能&#xff0c;…

10.selenium进阶

上述我们学习了selenium入门的一些操作, 本节知识点学习一些selenium的高级用法 1、嵌套网页 ​ 在前端开发中如果有这么一个需求。一个页面上的内容要被其它页面所共用。也就是说两个或者两个以上的页面需要共同存在与同一个页面。在前端页面开发中可以把写好的代码在每个页面…

HTML基础入门01

目录 1.HTML基础 1.1HTML标签 1.2HTML 文件基本结构 1.3标签层次结构 1.4快速生成代码框架 2.HTML 常见标签 2.1注释标签 2.2标题标签: h1-h6 2.3段落标签: p 2.4.换行标签: br 3.综合案例: 展示博客 1.HTML基础 1.1HTML标签 HTML 代码是由 "标签" 构成…

奥威BI系统:做数据可视化大屏,又快又简单

数据可视化大屏的制作难吗&#xff1f;会很花时间精力吗&#xff1f;这就要看用的是什么软件了。如果用的是BI系统&#xff0c;特别是奥威BI系统这类BI商业智能软件&#xff0c;那就是又快又简单。 奥威BI系统介绍&#xff1a; 奥威BI系统是一款高效的数据可视化大屏工具&…