《微信小程序开发入门精要》——第2章,第2.1节水平排列

简介:

本节书摘来自异步社区《微信小程序开发入门精要》一书中的第2章,第2.1节水平排列,作者 李宁,更多章节内容可以访问云栖社区“异步社区”公众号查看

第2章 布局
微信小程序开发入门精要
布局是任何支持UI的技术都会涉及到的。小程序的布局采用了和React Native相同的flex(弹性布局)方式,使用方法也类似(只是属性名不同而已)。因此,如果读者已经对React Native的布局比较了解,那么将非常容易掌握小程序布局。即使对React Native的布局不了解,通过对本章的学习,也可以掌握小程序布局的核心技术。

本章要点
水平排列布局
水平折行排列布局
垂直排列布局
垂直折列排列布局
水平排列对齐布局
垂直排列对齐布局
水平等间隔排列布局
带边距的水平等间隔排列布局

2.1 水平排列
小程序的布局和React Native的布局类似,采用了弹性布局的方法,即分为水平和垂直布局。默认是从左向右水平依次放置组件,或从上到下依次放置组件。

wxml文件用于放置参与布局的组件,为了更好地描述小程序是如何布局的,本章使用了带背景色的view组件来演示。view是小程序中所有可视组件的根。

任何可视组件都需要使用样式来设置自身的属性,并完成相应的布局。在小程序中,可以使用两种方式设置样式,一种是class属性,另一种是style属性。前者需要指定在wxss文件中定义的样式,后者允许直接在组件中定义样式属性。例如,如果要水平放置3个view组件,可以在wxml文件中使用下面的代码。

<view class="flex-wrp" style="flex-direction:row">
    <view class="flex-item bc_green"></view>
    <view class="flex-item bc_red"></view>
    <view class="flex-item bc_blue"></view>
 </view>

显示的效果如图2-1所示。


7fc4fe44a0efe584b038061112d04b80e2ca6c2c

▲图2-1 水平布局

在上面的代码中,同时使用了class和style属性。分别指定了样式flex-wrp和样式属性flex-direction:row,其中,后者表示view中的子组件要按水平排列。flex-wrp的定义如下:

.flex-wrp{
    height: 100px;
    display:flex;
    background-color: #FFFFFF;
 }

其中,display:flex表示弹性布局,flex是Flexible的缩写。

如果class属性需要指定多个样式,样式直接用空格分隔,代码如下:

<view class="flex-item bc_green"></view>
其中flex-item的代码如下:

.flex-item{
   width: 100px;
   height: 100px;
}

前面所有的样式都是在当前页面的index.wxss文件中定义的,而bc_green以及其他几个设置颜色的样式是在app.wxss文件中定义的,所有的页面都可以使用。

.bc_green{
    background-color: #09BB07;
 }
 .bc_red{
    background-color: #F76260;
 }
 .bc_blue{
    background-color: #10AEFF;
 }
 .bc_yellow{
    background-color: #FFBE00;
 }
 .bc_gray{
    background-color: #C9C9C9;
 }

如果不想使用style属性,可以将flex-direction:row放在样式中。例如,可以在index.wxss文件中添加如下的样式。

  .flex-row{
     flex-direction:row;
 }
然后修改index.wxml文件中的代码如下:

<view class="flex-wrp flex-row" >
    <view class="flex-item bc_green"></view>
    <view class="flex-item bc_red"></view>
    <view class="flex-item bc_blue"></view>
 </view>

可能很多读者会发现一个问题,本节的例子中只有3个view,如果放置了多个view会怎么样呢?从flex-item样式可知,每个view的尺寸是100*100,单位是像素(px),如果放置过多,可能会发生如下两种情况:

折行。
压缩每一个view的宽度。
那么到底会发生哪种情况呢?我们不妨做一个实验,代码如下:

<view class="flex-wrp flex-row" >
    <view class="flex-item bc_green"></view>
    <view class="flex-item bc_red"></view>
    <view class="flex-item bc_blue"></view>
    <view class="flex-item bc_green"></view>
    <view class="flex-item bc_red"></view>
    <view class="flex-item bc_blue"></view>
    <view class="flex-item bc_green"></view>
    <view class="flex-item bc_red"></view>
    <view class="flex-item bc_blue"></view>
  </view>

在上述代码中,view中包含了9个子view,保存index.wxml文件后,会显示如图2-2所示的效果。


c4036ec6902352445488171768d291877c7a9589

▲图2-2 压缩了每一个view的宽度

很明显,每一个view的宽度都被压缩了(因为每一个view的默认尺寸是一个正方形),以适应设备的宽度。不过这种处理方式可能并不符合我们的要求,如果我们的要求是让每一个view的尺寸保持不变,但是一行放不下,怎么能够折到下一行呢?答案就在下一节!

相关文章
|
20天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。
|
20天前
|
小程序 安全 数据安全/隐私保护
微信小程序全栈开发中的身份认证与授权机制
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的身份认证与授权机制。身份认证包括手机号验证、微信登录和第三方登录,而授权机制涉及角色权限控制、ACL和OAuth 2.0。实践中,开发者可利用微信登录获取用户信息,集成第三方登录,以及实施角色和ACL进行权限控制。注意点包括安全性、用户体验和合规性,以保障小程序的安全运行和良好体验。通过这些方法,开发者能有效掌握小程序全栈开发技术。
|
20天前
|
小程序 前端开发 JavaScript
微信小程序全栈开发中的PWA技术应用
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中PWA技术的应用,PWA结合Web的开放性和原生应用的性能,提供离线访问、后台运行、桌面图标和原生体验。开发者可利用Service Worker实现离线访问,Worker处理后台运行,Web App Manifest添加桌面图标,CSS和JavaScript提升原生体验。实践中需注意兼容性、性能优化和用户体验。PWA技术能提升小程序的性能和用户体验,助力开发者打造优质小程序。
|
2天前
|
小程序 前端开发 JavaScript
轻松学会微信小程序开发(一)
轻松学会微信小程序开发(一)
|
3天前
|
JSON 小程序 JavaScript
微信小程序开发1
微信小程序开发1
|
20天前
|
JavaScript 前端开发 小程序
微信小程序全栈开发之性能优化策略
【4月更文挑战第12天】本文探讨了微信小程序全栈开发的性能优化策略,包括前端的资源和渲染优化,如图片压缩、虚拟DOM、代码分割;后端的数据库和API优化,如索引创建、缓存使用、RESTful API设计;以及服务器的负载均衡和CDN加速。通过这些方法,开发者可提升小程序性能,优化用户体验,增强商业价值。
|
2月前
|
小程序 前端开发 程序员
微信小程序开发入门教程-小程序账号注册及开通
微信小程序开发入门教程-小程序账号注册及开通
|
20天前
|
监控 前端开发 小程序
微信小程序全栈开发中的前端工程化实践
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的前端工程化实践,旨在提升开发效率和体验。重点包括代码规范与架构设计(模块化、组件化、MVC模式)、自动化构建与部署(使用Webpack、Git和CI工具)、前端框架与库(如Vue.js、React、Angular)以及性能优化策略(代码、资源优化和性能监控)。通过这些实践,开发者能更高效地掌握小程序开发,打造高质量应用。
|
20天前
|
小程序 JavaScript 前端开发
微信小程序全栈开发中的数据交互与渲染优化
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的数据交互与渲染优化,旨在提升小程序性能和用户体验。数据交互涉及GET、POST、PUT和DELETE请求,优化措施包括使用HTTPS、数据压缩、缓存及限流。渲染优化则涵盖虚拟DOM、减少DOM操作、组件化和模板使用,以及WXSS样式设计和媒体查询。利用性能监控工具可识别并优化性能瓶颈。开发者应综合运用这些策略,持续优化小程序。
|
20天前
|
缓存 监控 小程序
微信小程序全栈开发中的性能监控与调优
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的性能监控与调优。页面加载速度、响应速度、内存占用和电量消耗是关键性能问题。开发者可利用微信小程序开发者工具进行性能监控,分析指标并优化代码、数据缓存、资源管理。通过综合性能调优,提升小程序性能和用户体验,降低用户流失。开发者需持续关注和学习新性能优化技术。

热门文章

最新文章