原生小程序基础篇

1.小程序的概念

小程序是一种不需要下载、安装即可使用的应用,它实现了应用触手可及的梦想,用户扫一扫或者搜一下就能打开应用,也实现了用完即走的理念,用户不用安装太多应用,应用随处可用,但又无须安装卸载。

  • 特点:无需下载(小程序体积非常小(不超过2M),用户感知不到下载的过程)
  • 理念:用完即走(用户随时退出小程序,不需要关注小程序本身)
  • 入口:扫一扫、搜一下、群聊……

2.认识小程序-目录结构

小程序文件类型

小程序主要提供了 4 种文件类型:

类型名称 作用 是否必须存在
.wxml 用于页面的布局结构,相当于网页中 .html 文件
.wxss 用于页面的样式,相当于网页中的 .css 文件
.js 用于页面的逻辑
.json 用于页面的配置

文件作用

文件名 作用 是否必须存在
app.js 小程序入口(首先执行的文件)
app.json 小程序的全局配置
app.wxss 小程序的全局样式
project.config.json 小程序开发者工具配置 是(会自动创建)
sitemap.json 小程序搜索优化

3.认识小程序-页面布局

页面的构成

一个完整的小程序页面需要包括 4 个类型的文件:

  • .wxml 定义页面的结构,类似于 .html
  • .wxss 定义页面的样式,类似于 .css
  • .js 定义页面的逻辑,监听事件、发起请求等
  • .json 定义页面的配置,如页面标题等

页面结构: (两个新标签 view, text)

  • view 定义块级区域,相当于网页中的 div 标签
  • text 定义行内区域,相当于网页中的 span标签

页面样式

  • 类选择器,与网页中一致
  • 标签选择器,与网页中一致
  • … 大部分的 css 样式都可以用到小程序中

4.小程序的基本配置 — 全局配置

1. 配置文件-全局:

a.所有页面都要登记

b.可以cv登记路径,将路径名更改为自己要创建的文件名,实现快速创建页面

c.需要使用哪一个页面为首页,就将那个页面路径放在第一个

2. window配置

a.

b.如何自定义navBar?

 "navigationStyle": "custom"

在json文件中配置window中配置这条命令可以取消固定的navBar,自定义navBar

3. tabBar 底部导航栏

a.在app.json文件中配置tabBar,最多用list设置5个 配置navBar跳转就无法使用navigator跳转页面了。

b.如果通过navigator跳转tabBar页面,要额外设置open-type!

5.小程序的基本配置 –文件配置

1.页面配置简介

  • 页面配置只针对某个页面生效
    • 如 index.json 是针对 index 页面生效,demo.json 只针对页面 demo 生效
  • 不用写window字段
  • 优先级比全局配置高

2.常用配置

属性 类型 默认值 是否必须 说明
navigationBarTitleText string 空白 导航栏标题文字内容
navigationBarTextStyle string black 导航栏标题颜色,仅支持 black / white
navigationBarBackgroundColor 16 进制颜色 #00000 导航栏背景颜色,如 #000000
navigationStyle string default 导航栏样式,仅支持 default / custom
enablePullDownRefresh boolean false 是否开启全局的下拉刷新

6.小程序适配 –rpx

1.响应式布局

一个网站或页面能兼容多个终端。
常见实现方式:

  1. 媒体查询
  2. rem
  3. %或vw/vh
  4. flex弹性布局
  5. rpx(小程序独享)

2.响应式单位rpx

rpx ,responsive pixel:

在小程序中的单位rpx,它的特点是能够自动地适配置不同尺寸的手机屏幕。

原理:不管手机屏幕具体多宽,100%的屏幕宽度就是750rpx


100%屏幕的宽度 = 750rpx

  1. 所有的设备宽度都是750rpx
  2. 在实际使用中只需要将设计稿调整为 750px 宽,然后 1:1 的比例来写长度(单位使用 rpx),如:设计稿中某个区域(盒子)的大小为 18090px ,写成小程序的尺寸为 18090rpx。

注:上述的规则仅适用于设计稿宽度为 750px

**rpx (responsive pixel):规定不管屏幕为多少px,100%的屏幕宽度就是750rpx
**100%屏幕的宽度 = 750rpx

7.小程序内置组件(常用)

1.内置组件—navigator

组件介绍

navigator 是小程序中的导航标签,类似以前web中的a标签。通过 url 来指定跳转的页面

常用属性

  • url: 页面路径
    • 支持相对和绝对路径
    • 路径为空会报错
    • 还可以跳到其他小程序
    • 蜜雪冰城appid: wx7696c66d2245d107
    • 蜜雪冰城short-link: #小程序://蜜雪冰城/a2FGdG8xwuFeJdB
  • hover-class:点击态的样式
    • none 禁用点击效果
  • open-type:跳转方式
    • navigate。默认值
    • switchTab。跳转到tabbar页
属性名 类型 默认值 说明
url string 当前小程序内的跳转链接
open-type string navigate 跳转方式
target String self 在哪个目标上发生跳转,默认当前小程序

参考代码

<navigator url="../page1/page1">相对地址</navigator>
<navigator open-type="navigate" url="/pages/page1/page1">绝对地址</navigator>

<navigator hover-class="red" url="/pages/page1/page1">绝对地址-red</navigator>
<navigator hover-class="none" url="/pages/page1/page1">绝对地址-red</navigator>

<navigator target="miniProgram" app-id="wx7696c66d2245d107">跳转蜜雪冰城</navigator>


<!-- open-type="switchTab" 只能跳转tabBar页面,非tabBar页面不能跳转 -->
<navigator open-type="switchTab" url="/pages/index/index">以open-type="switchTab"跳轮首面</navigator>

2.内置组件—image

格式

<image

src="图片资源地址"

mode="图片裁剪,缩放方式"></image>

要点

  • src: 图片资源地址。相对地址,绝对地址(外网地址)。
  • mode: 默认值为scaleToFill,用来设置图片裁剪、缩放的模式。
    • scaleToFill。不保证缩放比,图片拉伸填满容器
    • aspectFit。保证缩放比,使图片的长边显示出来
    • aspectFill。保证缩放比,使图片的短边显示出啦
  • lazy-load:默认为false,是否开启懒加载模式。(3屏)

参考代码

<image lazy-load src="https://res.wx.qq.com/wxdoc/dist/assets/img/0.4cb08bb4.jpg"></image>

3.内置组件—swiper

组件介绍

swiper可以理解为小程序内置的轮播图标签,可以让方便快速地实现轮播功能。

参考代码(格式)

<swiper>
  <swiper-item> 第1屏的内容 </swiper-item>
  <swiper-item> 第2屏的内容 </swiper-item>
  <swiper-item> 第3屏的内容 </swiper-item>
  <swiper-item> 第4屏的内容 </swiper-item>
</swiper>

要点

  1. swiper:滑块容器。内部只能写swiper-item。它的默认高度是150px;
  2. swiper-item:滑块单元。它的大小是: 宽度 和 高度 为 100% * 100%;

常用属性

属性名 类型 默认值 说明
indicator-dots Boolean false 是否显示面板指示点
autoplay Boolean false 是否自动切换
circular Boolean false 是否衔接轮播

参考代码

<swiper indicator-dots autoplay circular>
  <swiper-item>
    <image src="https://api-hmugo-web.itheima.net/pyg/banner1.png"></image>
  </swiper-item>
  <swiper-item>
    <image src="https://api-hmugo-web.itheima.net/pyg/banner2.png"></image>
  </swiper-item>
  <swiper-item>
    <image src="https://api-hmugo-web.itheima.net/pyg/banner3.png"></image>
  </swiper-item>
</swiper>

4.内置组件—form

表单常用

  1. 输入框:input
  • password密码类型,placeholder占位文字
  1. 单选框:radio-group和radio
  • value指定表单数据,checked选中状态
  1. 复选框:checked-group和checkbox
  • value指定表单数据,checked选中状态
  1. 选择框:picker
  • mode:指定不同类型的选择框

参考代码

<view class="register">
  <view class="legend">信息登记:</view>
  <view class="form-field">
    <label for="">姓名:</label>
    <view class="field">...</view>
  </view>
  <view class="form-field">
    <label for="">性别:</label>
    <view class="field">...</view>
  </view>
  <view class="form-field">
    <label for="">爱好:</label>
    <view class="field">...</view>
  </view>
  <view class="form-field">
    <label for="">籍贯:</label>
    <view class="field">...</view>
  </view>
  <view class="form-field">
    <label for="">生日:</label>
    <view class="field">...</view>
  </view>
</view>

5.内置组件—scroll-view

作用

scroll-view 在页面中指定一个可以滚动的区域,并且这个可滚动的区域能够实现一些高级的交互,比如:下拉刷新

要点

scroll-view 中嵌套任意需要滚动的内容,要求内容必须有溢出(scroll-view有固定的尺寸),垂直滚动时 scroll-view 必须要指定高度。

属性

  • scroll-x 属性是否允许水平方面滚动
  • scroll-y 属性是否允许垂直方向滚动
  • refresher-enable 属性是否开启下拉刷新的交互

参考代码

图片结构代码
<!-- 搜索框 -->
<view class="search-bar">
  <input type="text" placeholder="输入搜索关键字" />
</view>
<!-- 页面主体 -->
<view class="page-body">
  <view class="aside">
    <view class="item"></view>
    <view class="item"></view>
    <view class="item"></view>
  </view>
  <view class="content">
    <view class="item"></view>
    <view class="item"></view>
    <view class="item"></view>
  </view>
</view>
page {
  background-color: #f2f2f2;
}
.search-bar {
  padding: 20rpx 30rpx;
  background-color:#fff;
}
.search-bar input {
  padding: 14rpx 20rpx 10rpx 40rpx;
  border: 1rpx solid #eee;
  border-radius: 70rpx;
  font-size: 28rpx;
  color: #333;
}
.page-body {
  height: 700rpx;
  display: flex;
  margin-top: 20rpx;
}
.page-body .aside {
  width: 200rpx;
  padding: 20rpx;
  background-color: #fff;
}
.page-body .aside .item {
  height: 60rpx;
  margin-bottom: 20rpx;
  border-radius: 10rpx;
  background-color: #eee
}
.page-body .aside .active {
  background-color: pink;
}
.page-body .content {
  flex: 1;
  padding: 20rpx;
  margin-left: 20rpx;
  background-color: #fff;
}
.page-body .content .item {
  float: left;
  width: 215rpx;
  height: 215rpx;
  margin: 0 20rpx 20rpx 0;
  border-radius: 10rpx;
  background-color: #eee;
}
.page-body .content .item:nth-child(even) {
  margin-right: 0;
}
参考代码
<scroll-view scroll-y class="aside">
    // 省略其他
</scroll-view>
<scroll-view refresher-enabled scroll-y class="content">
      // 省略其他
</scroll-view>

结尾补充

以上均为本人整理的官方文档内容,大佬们如果有其他内容可以在评论区补充,非常欢迎各位jym评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞0

Warning: mysqli_query(): (HY000/3): Error writing file '/tmp/MYlQN8WR' (Errcode: 28 - No space left on device) in /www/wwwroot/583.cn/wp-includes/class-wpdb.php on line 2345
admin的头像-五八三
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

图形验证码
取消
昵称代码图片