前端组件库——iView Weapp知识点大全(二)

简介: 教程来源 https://www.xgmoi.cn iView Weapp提供40+高质量组件,涵盖布局(Grid、Panel)、基础(Button、Cell、Icon)、表单(Input、Radio/Checkbox)、反馈(Toast、Modal、ActionSheet)及导航(Tabs、Steps)五大类,支持按需引入、主题定制与事件委托,助力高效构建专业小程序界面。

三、核心组件详解

iView Weapp提供了40+个组件,以下是开发中最常用的核心组件。

3.1 布局组件
3.1.1 Grid栅格系统
Grid栅格组件用于实现响应式布局,将屏幕划分为24等份:

<i-row>
  <i-col span="12">
    <view class="grid-demo">6/12</view>
  </i-col>
  <i-col span="12">
    <view class="grid-demo">6/12</view>
  </i-col>
</i-row>

<i-row>
  <i-col span="8">
    <view class="grid-demo">8/24</view>
  </i-col>
  <i-col span="8">
    <view class="grid-demo">8/24</view>
  </i-col>
  <i-col span="8">
    <view class="grid-demo">8/24</view>
  </i-col>
</i-row>

i-row支持gutter属性设置列间距,i-col支持span属性设置占据的列数。

3.1.2 Panel面板
Panel用于将页面内容分组:

<i-panel title="标题">
  <view class="panel-content">
    面板内容
  </view>
</i-panel>

3.2 基础组件
3.2.1 Button按钮
Button是最常用的交互组件,iView Weapp提供了丰富的按钮样式:

<!-- 按钮类型 -->
<i-button type="primary">主要按钮</i-button>
<i-button type="default">默认按钮</i-button>
<i-button type="warning">警告按钮</i-button>
<i-button type="error">错误按钮</i-button>
<i-button type="success">成功按钮</i-button>

<!-- 按钮尺寸 -->
<i-button size="large">大号按钮</i-button>
<i-button size="default">默认按钮</i-button>
<i-button size="small">小号按钮</i-button>

<!-- 块级按钮 -->
<i-button type="primary" long>块级按钮</i-button>

<!-- 加载状态 -->
<i-button type="primary" loading>加载中</i-button>

<!-- 禁用状态 -->
<i-button type="primary" disabled>禁用按钮</i-button>

3.2.2 Cell单元格
Cell是列表布局的基础组件,常用于设置页面、信息展示等场景:

<!-- 基础单元格 -->
<i-cell title="标题" value="内容" />

<!-- 带图标的单元格 -->
<i-cell title="标题" icon="setting" />

<!-- 带箭头的单元格(用于导航) -->
<i-cell title="标题" is-link value="详情" />

<!-- 带说明文字的单元格 -->
<i-cell title="标题" label="说明文字" value="内容" />

<!-- 单元格组 -->
<i-cell-group>
  <i-cell title="选项1" is-link />
  <i-cell title="选项2" is-link />
</i-cell-group>

3.2.3 Icon图标
iView Weapp内置了大量常用图标:

<i-icon type="success" size="24" color="#19be6b" />
<i-icon type="close" size="24" color="#ed3f14" />
<i-icon type="information" size="24" color="#2d8cf0" />

3.3 表单组件
3.3.1 Input输入框
Input组件需要注意:必须设置maxlength属性,否则在开发工具中可能无法输入。

<i-input 
  title="用户名" 
  placeholder="请输入用户名" 
  maxlength="20"
  bindchange="handleUsernameChange"
/>

<i-input 
  title="密码" 
  type="password" 
  placeholder="请输入密码" 
  maxlength="20"
/>

常见问题:当不设置maxlength时,组件的maxlength默认可能为0,导致输入内容被清空。务必为每个Input组件设置合理的maxlength值。

3.3.2 Radio/Checkbox单选框/复选框

<!-- 单选 -->
<i-radio-group bindchange="handleRadioChange">
  <i-radio value="male" checked>男</i-radio>
  <i-radio value="female">女</i-radio>
</i-radio-group>

<!-- 多选 -->
<i-checkbox-group bindchange="handleCheckboxChange">
  <i-checkbox value="apple" checked>苹果</i-checkbox>
  <i-checkbox value="banana">香蕉</i-checkbox>
</i-checkbox-group>

3.4 反馈组件
3.4.1 Toast轻提示

<i-toast id="toast" />
this.selectComponent('#toast').show({
  type: 'success',
  duration: 2000,
  message: '操作成功'
});

3.4.2 Modal模态框

<i-modal 
  title="提示" 
  visible="{
  {visible}}"
  bindok="handleOk"
  bindcancel="handleCancel"
>
  <view>确定要执行此操作吗?</view>
</i-modal>

3.4.3 ActionSheet动作面板

<i-action-sheet 
  visible="{
  {actionVisible}}" 
  actions="{
  {actions}}"
  bindcancel="handleCancel"
  bindclick="handleClick"
/>
Page({
  data: {
    actions: [
      { name: '选项一', value: 1 },
      { name: '选项二', value: 2 },
      { name: '选项三', value: 3 }
    ]
  }
});

3.5 导航组件
3.5.1 Tabs标签页

<i-tabs current="{
  {current}}" bindchange="handleTabChange">
  <i-tab key="tab1" title="标签一">
    <view>内容一</view>
  </i-tab>
  <i-tab key="tab2" title="标签二">
    <view>内容二</view>
  </i-tab>
</i-tabs>

iView Weapp的Tabs组件支持通过i-class外部类进行样式定制,主题有black和white两种样式可选。

3.5.2 Steps步骤条

<i-steps current="{
  {current}}">
  <i-step title="步骤一" />
  <i-step title="步骤二" />
  <i-step title="步骤三" />
</i-steps>

四、事件处理机制

4.1 事件委托的设计理念
iView Weapp采用了事件委托的设计模式,将事件处理程序绑定到父元素而非每个子元素。当子元素触发事件时,事件会冒泡到父元素,由父元素统一处理。

事件委托的核心优势:
image.png
4.2 索引列表组件的委托实现
iView Weapp的索引列表组件通过handlerFixedTap方法实现了高效的事件委托:

handlerFixedTap(event) {
  const eindex = event.currentTarget.dataset.index;
  const item = this.getCurrentItem(eindex);
  this.setData({
    scrollTop: item.top,
    currentName: item.currentName,
    isTouches: true
  });
  this.triggerEvent('change', {
    index: eindex,
    current: item.currentName
  });
}

在WXML中通过data-index传递索引:

<view bindtap="handlerFixedTap" data-index="{
  {index}}">
  索引项内容
</view>

4.3 事件冒泡控制
合理使用bind和catch控制事件传播:

bind:允许事件冒泡,事件会继续向上传递

catch:阻止事件冒泡,事件不会继续向上传递

<!-- 事件会冒泡 -->
<view bindtap="parentTap">
  <button bindtap="childTap">点击我(会冒泡)</button>
</view>

<!-- 事件不会冒泡 -->
<view bindtap="parentTap">
  <button catchtap="childTap">点击我(不会冒泡)</button>
</view>

来源:
https://xgmoi.cn

相关文章
|
3月前
|
数据采集 前端开发 数据可视化
前端组件库——TDesign知识点大全(二)
教程来源 http://xcfsr.cn TDesign提供完善的主题定制能力:基于Design Token实现设计原子化管理;支持明暗双模式一键切换;内置主题生成器,可自定义颜色、字体等;兼容Vite/webpack的Less变量定制。同时拥有覆盖布局、导航、消息、数据、输入等场景的丰富组件体系。
|
3月前
|
Kubernetes Cloud Native 微服务
【微服务与云原生架构】 云原生核心:Docker、K8s架构、核心资源(Pod/Deployment/Service/Ingress)、Pod生命周期、健康检查、滚动更新、自动扩缩容HPA
本文系统梳理微服务与云原生架构的知识体系:以Docker实现环境一致与轻量交付,K8s提供容器编排底座;涵盖Pod、Deployment、Service、Ingress四大核心资源,以及健康检查、滚动更新、HPA自动扩缩容等关键能力,构建高可用、可弹性、可观测的现代分布式应用架构闭环。
|
3月前
|
人工智能 JSON 前端开发
前端组件库——Semi Design知识点大全(三)
教程来源 http://unbgv.cn Semi D2C是抖音前端自研的行业领先设计稿转代码工具,支持Figma一键生成语义化React代码(JSX+SCSS/Tailwind等),精准识别Semi组件及Props,无需标注、不改设计习惯,深度打通设计系统,3–5秒完成布局与样式还原。
|
3月前
|
安全 Cloud Native 微服务
【微服务与云原生架构】ServiceMesh服务网格(Istio)核心原理、Sidecar模式、数据面/控制面、适用场景
本文系统构建Istio服务网格完整知识体系,涵盖定位价值、Sidecar模式、控制面/数据面架构、xDS协议、流量/安全/可观测性原理、落地场景、生态对比及Ambient Mesh演进方向,兼顾理论深度与生产实践。
|
3月前
|
人工智能 监控 供应链
淘宝代运营爆款打造核心逻辑(附实操步骤)
本文基于淘宝官方规则与12年实战经验,提炼出一套科学、可复用的爆款打造方法论。涵盖产品选型(30%)、内容优化(25%)、流量运营(25%)、口碑维护(20%)四大维度,含8步实操流程与真实案例验证,助力商家提升转化、延长爆款生命周期。(239字)
786 0
|
3月前
|
前端开发 数据可视化 UED
前端组件库——Semi Design知识点大全(一)
教程来源 https://www.qeext.cn Semi Design是字节跳动抖音前端与UED团队联合打造的企业级设计系统,涵盖设计语言、2800+ Design Tokens、React组件库、主题定制、D2C/CD2等完整生态,助力中后台应用高效实现设计研发协同与品牌一致性。
|
3月前
|
测试技术 API 内存技术
LangChain 还是 LangGraph?一个是编排一个是工具包
本文对比LangChain与LangGraph在真实代码审查流水线中的实践:二者API、Agent逻辑与Gemini 2.5 Flash调用完全一致。LangChain适合线性流程,简洁高效;LangGraph则以状态机支持条件分支、循环重试与人工干预,是复杂编排的唯一解。二者非替代关系,而是抽象层级互补——LangChain v1.0的Agent已构建于LangGraph之上。
942 3
LangChain 还是 LangGraph?一个是编排一个是工具包
|
3月前
|
API
快来体验:阿里云百炼上线DeepSeek-V4,百万Tokens输入最低仅需1元
阿里云百炼首发DeepSeek-V4-Pro与V4-Flash,申请:https://t.aliyun.com/U/fPVHqY 支持百万Token超长上下文,Agent能力、世界知识及数学推理达开源顶尖水平;API价格与官网一致,输入低至1元/百万Token,即刻体验!
|
JavaScript 前端开发
js中模糊搜索 模糊匹配如何实现?
js中模糊搜索 模糊匹配如何实现?