微信小程序Day2学习笔记

这篇博客详细介绍了微信小程序的基础知识,包括WXML模板语法、数据绑定、事件绑定、条件渲染以及WXSS模板样式等内容。从数据的定义与使用,到事件处理函数的编写,再到样式控制和网络数据请求,一步步引导读者掌握小程序开发的核心技能。同时,通过实例展示了轮播图、九宫格和底部图片布局的实现,帮助读者巩固所学。
摘要由CSDN通过智能技术生成

学习目标

此笔记参考b站 黑马程序员微信小程序开发视频

D盘有文件写入权限问题,,今天换成了C盘,希望要撑住。。

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

1.WXML 模板语法

1.数据绑定 的基本原则

  1. 在 data 中定义数据
  2. 在 WXML中使用数据

2. 在 data 中定义数据

在这里插入图片描述

3. Mustache 语法的格式(差值表达式)

在这里插入图片描述

在 index.js 中 的data数据填写

Page({
  /**页面的初始数据 */
  data: {
    info:'hello world'
  },

在 index.wxml 中使用 <view> {{info}} </view>

4. Mustache 语法的应用场景

{{ }}

  1. 绑定内容
  2. 绑定属性
  3. 运算(三元运算,算术运算等)
1. 动态绑定内容

在这里插入图片描述

2. 动态绑定属性

在这里插入图片描述

3. 三元运算

在这里插入图片描述

4. 算术运算

在这里插入图片描述

2. 事件绑定

1. 什么是事件

事件,是渲染层=>到逻辑层的 通讯方式。通过事件,可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理。

在这里插入图片描述

2. 什么是事件

在这里插入图片描述

3. 事件对象 的 属性列表

在这里插入图片描述

4. target 和 currentTarget 的区别

在这里插入图片描述

5. bindtap 的语法格式

在这里插入图片描述
在 index.wxml 中

<button type="primary" bindtap="btnTapHandler">按钮</button>

在 index.js 中
与 data 同级,

 // 定义按钮的事件处理函数
  btnTapHandler(e){
    console.log(e)
  },

6. 在事件处理函数中 为 data 中的数据赋值

在这里插入图片描述
在 index.wxml 中

<button type="primary" bindtap="CountChange">+1</button>

在 index.js 中
与 data 同级,

 //+1 按钮的点击事件处理函数
  CountChange(e){
    this.setData({
      count: this.data.count + 1
    })
    console.log('ok')
  },

7. 事件传参

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

在 index.wxml 中

<button type="primary" bindtap="btnTap2" data-info="{{2}}">+2</button>

在 index.js 中
与 data 同级,

 btnTap2(e){
    this.setData({
      count:this.data.count + e.target.dataset.info
    })
  },

8. bindinput 的语法格式

在这里插入图片描述
在 index.wxml 中

<input bindinput="inputHandler"></input>

在 index.js 中
与 data 同级,

// input 输入框的事件处理函数
  inputHandler(e){
    console.log(e.detail.value)
  },

9. 实现 文本框 和 data 之间的数据同步

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

<input value="{{msg}}" bindinput="inputHandler"></input>

在这里插入图片描述


input{
  border: 1px solid #eeeeee;
  margin: 5px;
  padding: 5px;
  border-radius: 3px;
}

在这里插入图片描述

// input 输入框的事件处理函数
  inputHandler(e){
    this.setData({
      msg: e.detail.value
    })
    // console.log(e.detail.value)
  },

3. 条件渲染

1. wx:if

对应区域的 显示 和 隐藏
在这里插入图片描述

2. 结合 <block> 使用 wx:if

一次性控制多个组件的 显示 与 隐藏
在这里插入图片描述
shift + alt + ↓ 快速复制到下一行

<block wx:if="{{true}}">
  <view> view1 </view>
  <view> view2 </view>
</block>

block:避免在页面上渲出一些 不必要的节点

3. hidden

wx:if / hidden 都可以 控制组件的 显示 与 隐藏
在这里插入图片描述

4. wx:if 和 hidden的对比

wx:if :创建、移出元素
hidden: 加样式
在这里插入图片描述

5. wx:for

在这里插入图片描述
index.json

data

array1:['苹果','华为','小米']
<!--列表渲染-->
<view wx:for="{{array1}}">
  索引是:{{index}}, item项是:{{item}}
</view>

6. 手动指定索引,和当前项的变量名*

不经常用,了解即可
在这里插入图片描述

7. wx:key 的使用

在这里插入图片描述
wx:for 提高渲染效率

<view wx:for="{{userlist}}" wx:key="id">{{item.name}}</view>

2. WXSS 模板样式

1. 什么是 WXSS

wxss美化小程序中 组件样式
在这里插入图片描述

1. 什么是 rpx 尺寸单位

responsive pixel,解决屏适配的尺寸单位

在这里插入图片描述

2. rpx 与 px 之间的单位换算*

建议iPhone 6 做设计稿

在这里插入图片描述

2. 样式导入

1. 什么是样式导入

@import

在这里插入图片描述
wxml 加 class属性

<view wx:for="{{userlist}}" wx:key="id" class="username">{{item.name}}</view>

wxss 点 . 代表 class

.username{
  color: red;
}

2. 全局样式

定义在 app.wxss 中的样式为全局样式,作用于每一个页面


view{
  padding: 10rpx;
  margin: 10rpx;
  background-color: lightblue;
}

3. 局部样式

只在当前页面下的wxss进行修改

/* pages/test/test.wxss */
view{
  color: white;
}

在这里插入图片描述权重:selector specificity
局部权重 = 全局权重,局部会覆盖全局

view:nth-child(1){
选择第一个view
}

3. 全局配置

1. 全局配置文件 以及 常用的配置项

在这里插入图片描述

2. 小程序窗口的组成部分

Window主要是配置 navigationBar的()

在这里插入图片描述

3. 了解 window 节点常用的配置项

在这里插入图片描述

4. 设置导航栏的 标题

在这里插入图片描述

1. 设置导航栏的 背景色

在这里插入图片描述

2. 设置导航栏的 标题颜色

可选值只有:黑、白
在这里插入图片描述

5. 全局开启下拉刷新功能

在这里插入图片描述

1. 下拉刷新时 窗口的背景色

只有 light、dark
在这里插入图片描述

2. 设置 上拉触底 的距离

在这里插入图片描述

6. 什么是 tabBar

在这里插入图片描述

4. tabBar 的 6个组成部分

在这里插入图片描述

5. tabBar 节点的配置项

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

"tabBar": {
    "list": [
      {
      "pagePath": "pages/index/index",
      "text": "index"
      },
      {
        "pagePath": "pages/test/test",
        "text": "test"
      }
  ]},

6. 案例:配置 tabBar

tabBar的页面必须写在 pages前,不然不生效
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
与 data 同级

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

7. 页面配置

在这里插入图片描述

1. 页面配置 和 全局配置 的关系

页面的特殊配置,以页面为准
在这里插入图片描述

2. 页面配置中 常用的配置项

一般不建议全局配置 enablePullDownRefresh = true
在需要使用的页面,配置即可

在这里插入图片描述

8. 网络数据请求

1. 小程序中网络数据请求的限制

https,信任列表
在这里插入图片描述

2. 配置 request 合法域名

小程序管理后台:开发->开发设置->服务器域名 配置
在这里插入图片描述确认填写无误,再提交。(有限制)

注意事项:

在这里插入图片描述

3. 发起 GET 请求

在这里插入图片描述

4. 发起 POST 请求

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

5. 页面刚加载时,请求数据

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

6. 跳过request 合法域名校验

只能在开发,调试阶段使用!
在这里插入图片描述

7. 跨域 和 Ajax 的说明

在这里插入图片描述

9. 案例 - 本地生活

1. 首页效果 以及 实现步骤

在这里插入图片描述

关闭当前项目 - 创建新的小程序项目,不使用云服务,语言JavaScript
project.config.json: setting: “checkSiteMap”: false (取消console中的警告)

在app.json中的pages 设置新页面,删除不需要的页面。

在这里插入图片描述

2. 配置导航栏效果

在app.json中的window 配置导航栏的背景颜色,文字大小,文字内容,文本颜色等等。。

在这里插入图片描述

3. 配置tabBar效果

在这里插入图片描述

4. 实现轮播图效果

通过接口获取

在 home.js 中设置存放轮播图数据的列表
在这里插入图片描述

创建一个获取轮播图数据的方法
调用 wx.request ,发起 get 请求,请求地址 url。
拿到数据之后,success 中,调用 this.setData({重新为data中的数据重新赋值})
在这里插入图片描述

页面一加载,就调用的函数
在这里插入图片描述

可以查看 appData中有没有数据
在这里插入图片描述

将图片放在项目中,直接使用

在这里插入图片描述

5. 实现九宫格效果

wxml

<!-- 九宫格区域 -->
<view class="grid-list">
  <view class="grid-item" wx:for="{{gridList}}" wx:key="id">
    <image src="{{item.icon}}"></image>
    <text>{{item.name}}</text>
  </view>
</view>

wxss

.grid-list{
  display: flex;  //flex 布局
  flex-wrap: wrap;  // 允许换行
  border-left: 1rpx solid #eee;  //左侧的边框
  border-top: 1rpx solid #eee;  // 上册的边框
}

.grid-item{
  width: 33.33%;  // 三个一行
  height: 200rpx; // 100px
  display: flex;   
  flex-direction: column;  // 图片文本纵向布局
  align-items: center;   // 纵向居中
  justify-content: center;   // 横向居中
  border-right: 1rpx solid #eee;    // 右侧的边框
  border-bottom: 1rpx solid #eee;	// 下边的边框
  box-sizing: border-box;  //   有边框线,盛不下了(内容框content-box)换
  										//  成border-box  
  // 当盒子因为内容区的变化而变化时,为了固定其大小,一般使用border-box使其固定
}

.grid-item image{
  width: 60rpx;  // 30px =>  iPhone6 60rpx
  height: 60rpx;
}

.grid-item text{
  font-size: 24rpx;   // 字体大小12px
  margin-top: 10rpx;  // 文本 和 图片 之间的间距
}

display: flex; 讲解博客
在这里插入图片描述

6. 底部图片布局

wxml

<!-- 图片区域 -->
<view class="img-box">
  <image src="/images/link-01.png" mode="widthFix"></image>  
  // mode="widthFix" 宽度不变的情况下,高度自适应
  <image src="/images/link-02.png" mode="widthFix"></image>
</view>

wxss


.img-box {
  display: flex;     
  padding: 20rpx 10rpx;   //上下  左右
  justify-content: space-around;  // 横向 每个项目两侧的间隔相等。所以,项目之间的间隔 = 2*项目与边框的间隔 
}

.img-box image{
  width: 45%;  // 图片变小一些
}

10.总结

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值