黑马微信小程序学习

pages

其里面的每一个文件夹路径就是一个个展示的页面
从前到后的顺序就是依次展示顺序

07组件-view和scroll-view组件基本使用

7.1 view 小示例

某个页面路径里的list.wxml代码控制页面的结构

<view class="container1">
<view>A</view>
<view>B</view>
<view>C</view>
</view>

某个页面路径里的list.wxss代码控制页面的具体样式

/*总体设置长宽高*/
.container1 view{ /*.点出container 类*/
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
}
/*设置每一个展示块的颜色*/
.container1 view:nth-child(1) {
background-color: lightgreen;
}
.container1 view:nth-child(2) {
background-color: lightskyblue;
}
.container1 view:nth-child(3) {
background-color: lightpink;
}
/*设置水平排列、保持一定间距*/
.container1 {
display: flex;
justify-content: space-around;
}

7.2 scroll-view 滚动示例

某个页面路径里的list.wxml代码控制页面的结构

/*使用scroll-view, 并且说明滚动的方向,y方向还是x方向*/
<scroll-view class="container1" scroll-y="y">
<view>A</view>
<view>B</view>
<view>C</view>
</scroll-view>

某个页面路径里的list.wxss代码控制页面的具体样式

/*总体设置长宽高*/
.container1 view{ /*.点出container 类*/
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
}
/*设置每一个展示块的颜色*/
.container1 view:nth-child(1) {
background-color: lightgreen;
}
.container1 view:nth-child(2) {
background-color: lightskyblue;
}
.container1 view:nth-child(3) {
background-color: lightpink;
}

.container1 {
border: 1px solid red;/*设置边线和边距1个像素*/
width: 100px;
height: 150px;
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9xRo4jvQ-1672933114658)(/imgs/2022-12-11/gB6bdTcOc86WzyWh.png)]

8.1 swiper 轮播图

list.wxml控制页面的结构

<swiper class="swiper-container">
/*有多少个轮的就要有多少个<swiper-item>*/
/*第一个轮播图*/
<swiper-item>
    <view class="container1">A</view>
    /*轮播图片或者文字, 一般会用图片,这里用view*/
</swiper-item>
/*第二个轮播图*/
<swiper-item>
    <view class="container2">B</view>
</swiper-item>
/*第三个轮播图*/
<swiper-item>
    <view class="container3">C</view>
</swiper-item>
</scroll-view>

lis.wxss控制各个展示项目的样式

/*设置总的swiper样式*/
.swiper-container{
  height: 150px;
}
/*设置每一个item的样式,可以将多个item class命名为一样的,这样可以一次性统一设置*/
.container1{
  height: 100%;
  line-height: 150px;
  text-align: center;
}
.container2{
  height: 100%;
  line-height: 150px;
  text-align: center;
}
.container3{
  height: 100%;
  line-height: 150px;
  text-align: center;
}

swiper-item:nth-child(1) .container1{
  background-color: lightgreen;
}
swiper-item:nth-child(2) .container2{
  background-color: lightskyblue;
}
swiper-item:nth-child(3) .container3{
  background-color: lightpink;
}

可以将多个item class命名为一样的,这样可以一次性统一设置:
在这里插入图片描述

8.2 swiper 组件的属性常用

swiper 组件的属性常用:
在这里插入图片描述

8.2.1 使用

list.wxml控制页面的结构

<swiper class="swiper-container" 
indicator-dots               /*轮播的小圆点*/
indicator-color="white"      /*未选中小圆点颜色,选中默认为黑*/
indicator-active-color="red" /*设置选中小圆点颜色/
autoplay                     /*设置自动轮播/
interval="多少毫秒"           /*设置轮播切换的时间间隔/
circular>                    /*设置循环播放/
/*有多少个轮的就要有多少个<swiper-item>*/
/*第一个轮播图*/
<swiper-item>
    <view class="container1">A</view>
    /*轮播图片或者文字, 一般会用图片,这里用view*/
</swiper-item>
/*第二个轮播图*/

9 text 和 rich-text组件的基本用法

9.1 只有text selectable才能长按选中

list.wxml

<view>
手机号支持长按选中效果
<text selectable> 13800005056</text>
/*必须是text下的selectable模式才行*/
</view>
9.2 通过rich-text组件的nodes属性节点,把HTML字符串渲染为对应的UI机构
<rich-text nodes="<h1 style='color:red;'>html待渲染的文字内容
                  </h1">
 /*使用nodes
双引号里不能再使用双引号了,只能使用单引号
h1 用户给他设置html的样式*/
</rich-text>

10 button 和 image 组件

10.1 button外观属性

refer: https://blog.csdn.net/m0_45432976/article/details/122020571

属性类型默认值必填说明
sizestringdefault按钮的⼤⼩
typestringdefault按钮的样式类型
plainbooleanfalse按钮是否镂空,背景⾊透明
disabledbooleanfalse是否禁⽤
loadingbooleanfalse名称前是否带loading图标
form-typestring⽤于组件,点击分别会触发组件的submit/reset事件
open-typestring微信开放能力

10.2 button size的合法值

说明
default默认⼤⼩
mini⼩尺⼨
type的合法值
说明
primary绿⾊
default⽩⾊
warn红⾊
form-type 的合法值
说明
submit提交表单
reset重置表单
open-type 的合法值
说明
contact打开客服会话,如果⽤⼾在会话中点击消息卡⽚后返回⼩程序,可以从bindcontact 回调中获得具体信息
share触发⽤⼾转发,使⽤前建议先阅读使⽤指引
getPhoneNumber获取⽤⼾⼿机号,可以从bindgetphonenumber回调中获取到⽤⼾信息
getUserInfo获取⽤⼾信息,可以从bindgetuserinfo回调中获取到⽤⼾信息 launchApp 打开APP,可以通过app-parameter属性设定向APP传的参数
penSetting打开授权设置⻚
feedback打开“意⻅反馈”⻚⾯,⽤⼾可提交反馈内容并上传⽇志,开发者可以登 录⼩程序管理后台后进⼊左侧菜单“客服反馈”⻚⾯获取到反馈内容

10.3 image 组件

图⽚标签,image组件默认宽度320px、⾼度240px
⽀持懒加载

属性名类型默认值说明
srcString图⽚资源地址
modeStringscaleToFill图⽚裁剪、缩放的模式
lazy-loadBooleanfalse图⽚懒加载

image-mode的类型:
image-mode的类型

list.wxml设置结构

<image></image> <!--空image也会占据展示位置-->
<image src="/pages/image/mult_one_heart.jpg" mode="aspectFill"></image>
<!--src="指定image的位置路径" mode="指定填充的样式"-->

list.wxsss设置具体样式

image{
border: 1px solid red; <!--设置边框:边距、实线、颜色-->
}

14 小程序版本和发布

14.1 小程序的版本

14.2 小程序的发布

上传代码 —> 上传为开发版本 —> 腾讯审核 —> 可发布

15 小程序推广

小程序码推广:获取小程序码
在这里插入图片描述

19 数据绑定

19.1 数据绑定原则:

19.1.1 在 data 中定义数:

在页面对应的.js文件中,把数据定义到data 对象中

Page({
  /* 页面的初始数据  */
  data: {
  /* 定义字符串类型的数据*/
  info:'init data',
  /* 定义字符串类型的数据*/
   msgList:[{msg:'hello'},{msg:'world'}]
   
    motto:'hello world',
    imageSrc:'/pages/image/mult_one_heart.jpg'
  },
  ...
  })
19.1.2 在wxml 中使用数据-mustache语法{{}}

mustach语法{{}} 也叫做插值表达式

<view>{{motto}}</view>
<image src="{{imageSrc}}" mode="widthFix"></image>
<!--mustach语法{{}}被应用的地方有引号的得加上引号
src="指定image的位置路径",
mode="指定填充的样式"-->

19.2 mustache语法{{}}

mustache语法{{}} 也叫做插值表达式

19.2.1 mustache应用场景

绑定元素:19.1.2 的{{motto}}
绑定属性:19.1.2 的<image src=“{{imageSrc}}”
运算(三元运算、算数运算等):

<view>{{ randNumber1 >= 5? 'LE5' : 'LES5' }}</view>
<view>{{ randNumber2 * 100 }}</view>
  data: {
  randNumber1 : Math.random() * 10 /*生产0-1随机数*10*/
  randNumber2: Math.random().toFixed(2) /*生产两位小数*/
  }

34-35 配置网页请求地址

https://www.escook.cn/

小程序管理网页
开发
开发设置
服务器域名
修改合法域名

需要微信扫码,注意一个月只能修改5次

35 request请求的注意事项

对于只用于测试而非上线的网站,可以不一定是https的,可以如下设置:
微信开发小程序 —> 打开某一个项目 —> 右上详情 —> 本地设置 —> 勾选不校验合法域名、web-view选项

36 本地生活宝首页实例

总的结构图:

Structure
app.json
Home.js
Home.wxml
Home.wxss
page
Data
onLoad-参数options
function
window
tabBar
Home
Massage
Contact
Swiper
Flex
item_Height
space-around

Home.js:

data: {
  swiperList:[],
  ninePicture:[]
  },
//获取轮播图数据函数
getSwiperList(){
  wx.request({
    url: 'https://www.escook.cn/slides',
    method:'GET',
    success:(res)=>{
      console.log(res.data),
      this.setData({
        swiperList:res.data
      })
    }
  })
},
//获取九宫格图数据函数
getNinePicture(){
    wx.request({
      url: 'https://www.escook.cn/categories',
      method:'GET',
      success:(res)=> {
          console.log(res.data),
          this.setData({
            ninePicture:res.data
          })
      }
    })
},
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.getSwiperList(),
    this.getNinePicture()
  }

36.1 TabBar的多个页面

app.json里配置页面和函数

 "pages":[
    "pages/home/home",
    "pages/massage/massage",
    "pages/contact/contact",
    "pages/list/list",
    "pages/index/index",
    "pages/logs/logs"
  ],
  "window":{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#0000FF",
    "navigationBarTitleText": "心集团",
    "navigationBarTextStyle":"white"
  },
  "tabBar": {
    "list": [{
      "pagePath": "pages/home/home",
      "text": "家",
      "iconPath": "/pages/image/home.jpg",
      "selectedIconPath": "/pages/image/home_active.jpg"
    },{
      "pagePath": "pages/massage/massage",
      "text": "信息",
      "iconPath": "/pages/image/car.png",
      "selectedIconPath": "/pages/image/car_active.png"
    },{
      "pagePath": "pages/contact/contact",
      "text": "我们",
      "iconPath": "/pages/image/contact.jpg",
      "selectedIconPath": "/pages/image/contact_active.jpg"
    }]
  },

36.2 首页轮播图

Home.wxml:

for
Home.wxml
Swiper
Swiper-Item1
Image1
Swiper-Item2...
Image2...
Swiper-wx:for
item
<swiper class="swiper_class" indicator-dots circular>
<swiper-item wx:for="{{swiperList}}" wx:key="id">
  <image src="{{item.image}}" mode="widthFix"></image>
</swiper-item>
</swiper>

36.3 首页九宫格图

Home.wxml:

for
Home.wxml
view
view-items
view-item1
Image1
text1
view-item2
Image2
text2
view-wx:for
view-Items

Home.wxml:

<view class="view_class">
  <view class="view_item" wx:for="{{ninePicture}}" wx:key="id">
   <image src="{{item.icon}}"></image>
   <view>{{item.name}}</view>
</view>
</view>

Home.wxss:

NinePictures
总View
flex和wrap和border
View-items
大小和flex-dir和align和border-box
Items-Image
Items-Text
.view_class{
  display: flex;
  flex-wrap: wrap;
  border-top:1rpx solid lightpink;
  border-left: 1rpx solid lightpink;
}
.view_item {
  width: 33.33%;                    /*每一个Item张33.33%*/
  height: 200rpx;                   /*指定每一个Item的高度*/
  display: flex;                    /*Item里的东西flex*/                   
  flex-direction: column;           /*Item里的东西flex的方向*/
  align-items: center;              /*Item里的东西水平方向居中*/
  justify-content: center;          /*Item里的东西上下方向居中*/
  border-bottom:1rpx solid lightpink;
  border-right: 1rpx solid lightpink;
  box-sizing: border-box;          /*边界与边框线共用,缩小尺寸*/
}
.view_item image{                  /*控制当个item下的 image*/
  height: 60rpx;                   /**/
  width: 60rpx;                    /**/
}
.view_item text{                 /*控制当个item下的 text*/
  font-size: 24rpx;              /**/
  margin-top: 10rpx;             /**/
}

36.4 首页底部两图

Home.wxml:

<view class="view_2p">
  <image src="/pages/image/car1.jpg"></image>
  <image src="/pages/image/pay.jpg" > </image>
</view>

Home.wxss:

.view_2p{                         /*调整两图上一级的整体view*/
  display: flex;                  /*两图水平布局*/
  justify-content: space-around;  /*两图之间水平按着间接分开*/
  margin-left: 10rpx;             /*左边距*/
  margin-top: 10rpx;              /*上边距*/
}
.view_2p image{                   /*调整单独的图片的样式*/
  height: 175rpx;                 /*各个图片的高度*/
  width: 300rpx;                  /*各个图片的宽度*/
  border: 10rpx solid lightpink;  /*各个图片的边框*/
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值