面试官说,布局小程序页面记得用TDesign组件库

简介: 面试官说,布局小程序页面记得用TDesign组件库

TDesign UI 介绍

TDesign UI是一个小程序组件库,它提供了一系列常用的UI组件和样式,帮助开发者快速构建美观、易用的小程序界面。

TDesign UI的特点之一是它具有丰富多样的组件库,涵盖了各种常用的UI元素,包括按钮、表单、卡片、导航栏、标签、列表等等。这些组件都经过精心设计,具有统一的风格和交互方式,使得小程序界面的开发变得更加简单和高效。


另外,TDesign UI还提供了丰富的样式和主题定制选项,开发者可以根据自己的需求进行调整和扩展。这使得开发者能够根据具体的小程序品牌或设计要求,轻松创建符合自己风格的界面。


除了组件和样式,TDesign UI还注重性能和用户体验。它经过优化和测试,确保在不同平台和设备上都能提供流畅的运行和良好的响应性能。同时,它也提供了详细的文档和示例代码,帮助开发者快速上手并解决问题。

组件库

使用方法

在.json页面中插入

{
  "component": true,
  "usingComponents": {
    "t-button": "文件所在位置"
  }
}

即可在.wxml中使用该组件库

基础

导航

输入



数据展示

反馈


获取与在线预览

扫描下方二维码即可,点击压缩包

实战电商

首页

首页功能设定

  1. loading入场
  2. 下拉刷新
  3. 搜索栏
  4. 分类切换
  5. 商品列表
  6. 规格弹层
  7. 加载更多


home.wxml

<view style="text-align: center; color: #b9b9b9" wx:if="{{pageLoading}}">
  <t-loading theme="circular" size="40rpx" text="加载中..." inherit-color />
</view>
<view class="home-page-header">
  <view class="search" bind:tap="navToSearchPage">
    <t-search
      t-class-input="t-search__input"
      t-class-input-container="t-search__input-container"
      placeholder="iphone 16 火热发售中"
      leftIcon=""
      disabled
    >
      <t-icon slot="left-icon" prefix="wr" name="search" size="40rpx" color="#bbb" />
    </t-search>
  </view>
  <view class="swiper-wrap">
    <t-swiper
      wx:if="{{imgSrcs.length > 0}}"
      current="{{current}}"
      autoplay="{{autoplay}}"
      duration="{{duration}}"
      interval="{{interval}}"
      navigation="{{navigation}}"
      imageProps="{{swiperImageProps}}"
      list="{{imgSrcs}}"
      bind:click="navToActivityDetail"
    />
  </view>
</view>
<view class="home-page-container">
  <view class="home-page-tabs">
    <t-tabs
      t-class="t-tabs"
      t-class-active="tabs-external__active"
      t-class-item="tabs-external__item"
      defaultValue="{{0}}"
      space-evenly="{{false}}"
      bind:change="tabChangeHandle"
    >
      <t-tab-panel
        wx:for="{{tabList}}"
        wx:for-index="index"
        wx:key="index"
        label="{{item.text}}"
        value="{{item.key}}"
      />
    </t-tabs>
  </view>
  <goods-list
    wr-class="goods-list-container"
    goodsList="{{goodsList}}"
    bind:click="goodListClickHandle"
    bind:addcart="goodListAddCartHandle"
  />
  <load-more list-is-empty="{{!goodsList.length}}" status="{{goodsListLoadStatus}}" bind:retry="onReTry" />
  <t-toast id="t-toast" />
</view>

运行该代码后,大致的UI结构如下所示:

---------------------------------------
|              pageLoading            |
---------------------------------------
|         home-page-header部分         |
---------------------------------------
|           swiper-wrap部分           |
---------------------------------------
|       home-page-container部分        |
|-------------------------------------|
|            home-page-tabs            |
|-------------------------------------|
|           goods-list部分             |
|-------------------------------------|
|             load-more部分            |
|-------------------------------------|
|                t-toast               |
---------------------------------------

以下是对每个部分的解析:


pageLoading部分:该部分根据条件进行渲染,如果pageLoading变量为true,则显示一个居中的加载指示器(t-loading)。


home-page-header部分:该部分代表首页的头部区域。它包含一个搜索栏(t-search),具有一个占位文本(“iphone

16 火热发售中”)和禁用状态。搜索栏的左侧图标(t-icon)使用了前缀为"wr"的"search"图标。


swiper-wrap部分:该部分包含一个轮播组件(t-swiper),用于展示一系列的图片幻灯片。图片通过imgSrcs数组提供,轮播支持自动播放、导航按钮以及点击图片触发navToActivityDetail事件。


home-page-container部分:该部分代表首页的主要内容容器。它包含一个选项卡组件(t-tabs),内部包含多个选项卡面板(t-tab-panel)。选项卡面板的数量由tabList数组决定。每个选项卡面板都有一个基于tabList数组中的元素的标签和值。当选择一个选项卡时,会调用tabChangeHandle函数。


goods-list部分:该部分使用自定义组件goods-list显示一系列商品列表。它接收goodsList数组作为输入数据,并提供事件处理函数(goodListClickHandle、goodListAddCartHandle)以处理商品点击和添加到购物车的操作。


load-more部分:该部分处理分页或惰性加载的功能。它包含了load-more组件,根据goodsListLoadStatus变量显示不同的状态(加载中、错误、空列表)。当用户重试加载更多数据时,会调用onReTry函数。


t-toast部分:该部分代表一个提示框组件(t-toast),用于向用户显示通知或消息。


在该项目中是如何使用 TDesign UI 的

代码

{
  "navigationBarTitleText": "首页",
  "onReachBottomDistance": 10,
  "backgroundTextStyle": "light",
  "enablePullDownRefresh": true,
  "usingComponents": {
    "t-search": "tdesign-miniprogram/search/search",
    "t-loading": "tdesign-miniprogram/loading/loading",
    "t-swiper": "tdesign-miniprogram/swiper/swiper",
    "t-swiper-nav": "tdesign-miniprogram/swiper-nav/swiper-nav",
    "t-image": "/components/webp-image/index",
    "t-icon": "tdesign-miniprogram/icon/icon",
    "t-toast": "tdesign-miniprogram/toast/toast",
    "t-tabs": "tdesign-miniprogram/tabs/tabs",
    "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel",
    "goods-list": "/components/goods-list/index",
    "load-more": "/components/load-more/index"
  }
}

这段代码是一个小程序页面的配置文件,用于定义页面的一些属性和引用组件。


navigationBarTitleText:设置导航栏标题为"首页"。

onReachBottomDistance:定义触发上拉加载更多的距离为10px。

backgroundTextStyle:设置背景文本样式为"light",可能是指背景文字颜色或样式的设置。

enablePullDownRefresh:启用下拉刷新功能,允许用户下拉页面进行刷新操作。

使用 TDesign UI 组件库时,通过 “usingComponents” 字段引入所需的组件。每个组件都有一个别名和路径。


例如:


“t-search”: “tdesign-miniprogram/search/search” 表示引入了名为 “t-search” 的搜索组件,路径为 “tdesign-miniprogram/search/search”。

“goods-list”: “/components/goods-list/index” 表示引入了名为 “goods-list” 的商品列表组件,路径为 “/components/goods-list/index”。

你可以在页面的 WXML 文件中直接使用这些组件,比如:

<t-search></t-search>
<t-loading></t-loading>
<t-swiper></t-swiper>
...

小结之使用TDesign UI 构建自己的页面

以下是使用微信小程序框架构建页面的一般步骤:


创建项目:首先,在微信开发者工具中创建一个新的小程序项目。


页面结构:小程序采用组件化的思路构建页面。每个页面由一个 .wxml 文件、一个 .wxss 文件、一个 .js 文件和一个 .json 文件组成。.wxml 文件定义页面的结构,.wxss 文件定义页面的样式,.js 文件处理页面的逻辑,.json 文件配置页面的一些参数。


页面布局:在 .wxml 文件中使用小程序提供的组件来构建页面的布局。例如,使用 <view> 组件作为容器,使用 <text> 组件显示文本内容,使用 <image> 组件显示图片等等。根据设计需求和功能要求,选择TDesign UI 进行布局。


导入组件库:在 .json 文件中导入TDesign UI使得 .wxml 文件正常使用


样式设置:在 .wxss 文件中编写样式规则来美化页面的外观。你可以使用 CSS 属性来调整元素的大小、颜色、边距等样式属性。


交互逻辑:在 .js 文件中编写页面的交互逻辑。通过监听事件、调用 API 等方式实现页面的动态效果和交互行为。例如,响应按钮点击事件、发送网络请求、更新数据等操作。


数据传递和状态管理:小程序中可以使用 setData() 方法来更新页面数据,并通过数据绑定的方式将数据渲染到视图上。对于复杂的状态管理,可以考虑使用框架提供的数据管理方案或者第三方的状态管理库。


调试和优化:在开发过程中,使用微信开发者工具提供的调试功能进行页面的测试和调试。根据用户反馈和性能指标进行页面的优化,包括减少网络请求、优化渲染性能、提高用户体验等。

相关文章
|
29天前
|
小程序 数据可视化 JavaScript
微信小程序:轻松实现时间轴组件
本文介绍了如何在微信小程序中实现一个可视化时间轴组件。该组件适用于展示用户资金流动、投资结算等时间节点,帮助用户直观了解资金去向。时间轴支持自定义节点形状、显示序号、倒序排列等功能,并通过插槽灵活定义动态内容。文中详细介绍了组件的设计与使用方法,以及如何结合动态 slot 实现自定义操作。该组件为展示用户资金信息提供了美观、易用的解决方案。
57 1
微信小程序:轻松实现时间轴组件
|
12天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
24天前
|
小程序 前端开发 开发者
小程序的页面如何布局?
【10月更文挑战第16天】小程序的页面如何布局?
40 1
|
28天前
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
366 1
|
29天前
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
56 0
微信小程序:自定义关注公众号组件样式
|
2月前
|
JSON 小程序 前端开发
微信小程序的目录结构及页面结构的说明
本文详细介绍了微信小程序的目录结构、页面组成部分以及项目的全局配置文件,阐述了小程序的宿主环境和运行机制,包括小程序启动和页面渲染的过程。
微信小程序的目录结构及页面结构的说明
|
1月前
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
51 1
|
1月前
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
172 1
|
1月前
|
小程序 JavaScript
微信小程序之input组件及其获取用户输入信息
微信小程序之input组件及其获取用户输入信息
50 1
|
2月前
|
小程序 JavaScript API
微信小程序开发学习之页面导航(声明式导航和编程式导航)
这篇文章介绍了微信小程序中页面导航的两种方式:声明式导航和编程式导航,包括如何导航到tabBar页面、非tabBar页面、后退导航,以及如何在导航过程中传递参数和获取传递的参数。
微信小程序开发学习之页面导航(声明式导航和编程式导航)