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

简介: 教程来源 https://htnus.cn/ NutUI提供按钮、单元格、输入框、选择器、Toast/Dialog等核心移动端组件,支持丰富样式、状态与交互;基于Taro实现H5、微信/京东/支付宝/百度小程序“一码五端”跨平台运行,兼顾高性能与高一致性。

三、核心组件详解

3.1 按钮组件 Button
按钮是用户交互中最基础的组件,NutUI提供了丰富的按钮样式和状态。

<template>
  <!-- 按钮类型 -->
  <nut-button type="primary">主要按钮</nut-button>
  <nut-button type="success">成功按钮</nut-button>
  <nut-button type="danger">危险按钮</nut-button>
  <nut-button type="warning">警告按钮</nut-button>
  <nut-button type="default">默认按钮</nut-button>

  <!-- 按钮尺寸 -->
  <nut-button type="primary" size="large">大号按钮</nut-button>
  <nut-button type="primary" size="normal">普通按钮</nut-button>
  <nut-button type="primary" size="small">小型按钮</nut-button>
  <nut-button type="primary" size="mini">迷你按钮</nut-button>

  <!-- 块级按钮 -->
  <nut-button type="primary" block>块级按钮</nut-button>

  <!-- 镂空按钮 -->
  <nut-button type="primary" plain>镂空按钮</nut-button>

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

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

  <!-- 图标按钮 -->
  <nut-button type="primary" icon="star">收藏</nut-button>
</template>

Button组件属性说明:
image.png
3.2 单元格组件 Cell
单元格是移动端列表布局的核心组件,常用于信息展示和导航。

<template>
  <!-- 基础单元格 -->
  <nut-cell title="单元格标题" value="内容" />
  <nut-cell title="单元格标题" sub-title="描述信息" value="内容" />

  <!-- 带图标的单元格 -->
  <nut-cell title="单元格" icon="location" />

  <!-- 带右侧箭头的单元格 -->
  <nut-cell title="单元格" is-link />

  <!-- 自定义内容 -->
  <nut-cell title="单元格">
    <template #value>
      <nut-tag type="primary">标签</nut-tag>
    </template>
  </nut-cell>

  <!-- 单元格组 -->
  <nut-cell-group title="分组标题">
    <nut-cell title="单元格1" value="内容1" />
    <nut-cell title="单元格2" value="内容2" />
    <nut-cell title="单元格3" value="内容3" />
  </nut-cell-group>
</template>

3.3 表单输入组件 Input
NutUI提供了功能完善的表单输入组件。

<template>
  <nut-cell-group title="基础用法">
    <!-- 基础输入框 -->
    <nut-cell>
      <nut-input 
        v-model="state.text" 
        placeholder="请输入文本" 
      />
    </nut-cell>

    <!-- 密码输入框 -->
    <nut-cell>
      <nut-input 
        v-model="state.password" 
        type="password" 
        placeholder="请输入密码" 
      />
    </nut-cell>

    <!-- 禁用状态 -->
    <nut-cell>
      <nut-input 
        v-model="state.disabled" 
        disabled 
        placeholder="禁用状态" 
      />
    </nut-cell>

    <!-- 只读状态 -->
    <nut-cell>
      <nut-input 
        v-model="state.readonly" 
        readonly 
        placeholder="只读状态" 
      />
    </nut-cell>
  </nut-cell-group>
</template>

<script setup>
import { reactive } from 'vue';

const state = reactive({
  text: '',
  password: '',
  disabled: '禁用',
  readonly: '只读'
});
</script>

Input组件属性说明:
image.png
3.4 选择器组件 Picker
Picker选择器是移动端常用的数据选择组件。

<template>
  <nut-cell 
    title="请选择城市" 
    :desc="cityValue || '请选择'" 
    @click="showPicker = true" 
  />

  <nut-picker
    v-model:visible="showPicker"
    title="请选择城市"
    :columns="cityColumns"
    @confirm="handleConfirm"
  />
</template>

<script setup>
import { ref } from 'vue';

const showPicker = ref(false);
const cityValue = ref('');

const cityColumns = [
  { text: '北京', value: 'beijing' },
  { text: '上海', value: 'shanghai' },
  { text: '广州', value: 'guangzhou' },
  { text: '深圳', value: 'shenzhen' }
];

const handleConfirm = ({ selectedValue }) => {
  cityValue.value = selectedValue[0].text;
};
</script>

3.5 反馈组件
3.5.1 轻提示 Toast
Toast用于显示轻量级提示信息。

<template>
  <nut-button type="primary" @click="showToast">显示Toast</nut-button>
</template>

<script setup>
import { showToast } from '@nutui/nutui';

const showToast = () => {
  showToast.text('操作成功', {
    duration: 2000
  });
};
</script>

Toast属性说明:
image.png
3.5.2 对话框 Dialog
Dialog用于显示重要信息或需要用户确认的操作。

<template>
  <nut-button type="primary" @click="showDialog">显示对话框</nut-button>

  <nut-dialog
    v-model:visible="dialogVisible"
    title="温馨提示"
    content="确定要删除这条数据吗?"
    @confirm="handleConfirm"
    @cancel="handleCancel"
  />
</template>

<script setup>
import { ref } from 'vue';
import { showToast } from '@nutui/nutui';

const dialogVisible = ref(false);

const showDialog = () => {
  dialogVisible.value = true;
};

const handleConfirm = () => {
  showToast.text('点击了确认');
  dialogVisible.value = false;
};

const handleCancel = () => {
  showToast.text('点击了取消');
};
</script>

四、跨端适配与多端开发

4.1 一码五端能力
NutUI最核心的竞争力之一是其强大的跨端能力。基于Taro框架,NutUI实现了真正意义上的"一套代码,多端运行",支持H5、微信小程序、京东小程序、支付宝小程序、百度小程序等多个平台。

组件库间的关系:

Taro作为跨端框架,提供了基础组件库@tarojs/components(包含View、ScrollView、Text等容器组件)。NutUI基于Taro框架实现跨端能力,@tarojs/components是整个NutUI组件库实现跨端的基座。

4.2 Taro版本配置
安装NutUI Taro版本

npm install @nutui/nutui-taro --save

配置Taro项目

// config/index.js
export default {
  // ...其他配置
  mini: {
    webpackChain(chain) {
      // 配置NutUI按需加载
      chain.resolve.alias.set('@nutui/nutui', '@nutui/nutui-taro');
    }
  },
  h5: {
    webpackChain(chain) {
      chain.resolve.alias.set('@nutui/nutui', '@nutui/nutui-taro');
    }
  }
};

4.3 多端适配注意事项
在实际跨端开发中,需要注意以下几点:

  1. 标签替换
    在鸿蒙和回跨到iOS/安卓的项目中,需要将原来的div、span等Web端标签改为Taro标签。

  2. 条件编译
    通过判断端来做不同的处理:

/* #ifdef harmony dynamic */
width: 80px;
/* #endif */
/* #ifndef harmony dynamic */
width: auto;
/* #endif */

3.API兼容
避免使用不支持的属性或API,如需要做兼容处理:

// 不建议
left: -var(--nut-spacing);
align-items: start;

// 建议
left: calc(-1 * var(--nut-spacing));
align-items: flex-start;

4.4 小程序分包加载
对于小程序项目,可以使用分包加载优化性能:

// app.json
{
  "subPackages": [
    {
      "root": "pages/sub",
      "pages": ["index"]
    }
  ]
}

来源:
https://unbgv.cn/

相关文章
|
3月前
|
小程序 JavaScript API
js开发怎样将小程序添加到手机桌面
js开发怎样将小程序添加到手机桌面
663 155
|
2月前
|
人工智能 自然语言处理 安全
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
本文介绍了Claude Code终端AI助手的使用指南,主要内容包括:1)常用命令如版本查看、项目启动和更新;2)三种工作模式切换及界面说明;3)核心功能指令速查表,包含初始化、压缩对话、清除历史等操作;4)详细解析了/init、/help、/clear、/compact、/memory等关键命令的使用场景和语法。文章通过丰富的界面截图和场景示例,帮助开发者快速掌握如何通过命令行和交互界面高效使用Claude Code进行项目开发,特别强调了CLAUDE.md文件作为项目知识库的核心作用。
39707 72
Claude Code 全攻略:命令大全 + 实战工作流(建议收藏)
|
2月前
|
人工智能 缓存 监控
阿里云大模型服务平台百炼新人免费额度如何申请?申请与使用免费额度教程及常见问题解答
阿里云百炼是一站式大模型开发平台,集成千问及第三方模型,提供OpenAI兼容API及全链路服务,支持快速构建智能体等AI应用。平台为新人提供专属免费额度,自2025年9月8日起有效期为90天,仅限中国内地版模型实时推理费用抵扣,主账号与RAM子账号共享。用户可通过控制台查看剩余额度及过期时间,启用“免费额度用完即停”功能可避免超额扣费。此外,平台还提供免费额度消耗记录、账单查询及消费预警设置,助力开发者高效管理成本。
|
2月前
|
移动开发 前端开发 小程序
前端组件库——NutUI知识点大全(一)
教程来源 https://oieaw.cn/sheyingjiqiao.html NutUI是京东开源的轻量级移动端Vue组件库,源自真实业务场景,经亿级用户考验。支持Vue2/3、React及Taro多端(H5/微信/京东/支付宝等小程序),80+高质量组件,遵循京东APP 10.0视觉规范,支持按需引入、动态主题、暗黑模式与国际化。
|
2月前
|
移动开发 前端开发 JavaScript
前端组件库——Vant 4知识点大全(二)
教程来源 http://yvyus.cn/category/shengxiaoxingge.html Vant是轻量可靠的移动端Vue组件库,提供Button、Cell、Form、List、Dialog等70+高质量组件,支持按需引入、主题定制与TypeScript,全面覆盖H5及小程序开发场景。
|
2月前
|
存储 人工智能 搜索推荐
AI情感陪伴——当机器学会“懂你”
2024年至2026年,AI技术正从“功能型助手”迈向“情感型伴侣”。
694 0
|
6月前
|
前端开发
前端UI框架介绍VantUI AtUI CubeUI Flutter lonic
前端UI框架介绍VantUI AtUI CubeUI Flutter lonic
228 2
|
机器学习/深度学习 小程序 安全
让小程序开口说话:DeepSeek语音交互开发指南
本文介绍如何利用DeepSeek语音交互技术构建智能语音助手,涵盖从安装声音采集设备、训练语言理解模型到设计语音控制界面的全过程。通过生活化场景,如深夜查找教程、旅行中寻找餐厅等,展示如何实现自然对话。此外,还深入探讨多轮对话记忆、情感计算及智能家居控制等进阶功能,帮助开发者创建会倾听、善思考的语音应用。最后,提供性能优化与安全防护建议,引领读者进入人机共生的新时代。
|
安全 Java 数据安全/隐私保护
【Spring底层原理高级进阶】【SpringCloud整合Spring Security OAuth2】深入了解 Spring Security OAuth2:底层解析+使用方法+实战
【Spring底层原理高级进阶】【SpringCloud整合Spring Security OAuth2】深入了解 Spring Security OAuth2:底层解析+使用方法+实战