前端组件库——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月前
|
Kubernetes 应用服务中间件 API
应对 Nginx Ingress 退役,是时候理清这些易混淆的概念了
本文希望提供一种更简单的方式,来理解这些容易混淆的技术概念:Nginx、Ingress、Ingress Controller、Ingress API、Nginx Ingress、Higress、Gateway API。
1711 111
|
4天前
|
JavaScript 前端开发 搜索推荐
前端组件库Element UI知识点大全(一)
教程来源 https://tmywi.cn/category/shishang.html Element UI是饿了么团队于2016年推出的Vue 2桌面端UI组件库,提供丰富组件、统一设计规范与24列栅格系统,显著提升中后台开发效率。GitHub超4万Star,广泛应用于国内管理系统,虽Vue 3时代有Element Plus替代,但其设计理念仍深刻影响生态。
|
7天前
|
机器学习/深度学习 缓存 搜索推荐
Java+AI实战:从零构建智能推荐系统(一)
教程来源 https://tmywi.cn/category/jiankang.html 本文详解如何用Java从零构建生产级智能推荐系统SmartRec,覆盖数据采集、特征工程、多路召回、深度排序、重排及A/B测试全链路。聚焦高并发、实时性与可扩展性,助你掌握AI落地核心能力。
|
22天前
|
XML Java Maven
Spring Boot学习知识点大全(一)
教程来源 https://app-a87ujc988w01.appmiaoda.com/ Spring Boot 是 Spring 家族中革命性框架,秉持“约定优于配置”理念,通过自动配置、起步依赖、嵌入式服务器等特性,大幅简化企业级 Java 应用开发。本文系统梳理其核心概念、注解、多环境配置与最佳实践,助初学者快速入门,为进阶开发者提供深度参考。
|
Java 数据处理
技术分享:高效与灵活并存——Java版通用树形结构转换工具的实现与应用
在软件开发中,树形结构的数据表现形式无处不在,从文件系统的目录树到组织架构的部门树,再到各类产品的分类结构。处理这些具有层级关系的数据时,将其转换为树形结构以便展示和操作显得尤为重要。Java作为一门成熟的编程语言,虽然提供了强大的集合框架,但并未直接提供树形结构转换的内置工具。因此,开发一个高效且灵活的通用树形结构转换工具成为许多项目中的必备需求。
593 2
|
存储 NoSQL Java
【Spring技术原理】分析探究RedisTemplate的序列化和反序列化+泛型机制
【Spring技术原理】分析探究RedisTemplate的序列化和反序列化+泛型机制
1515 0
|
存储 安全 Java
|
XML Java API
30. 【Android教程】吐司提示:Toast 的使用方法
30. 【Android教程】吐司提示:Toast 的使用方法
1037 2
|
JSON 算法 Java
微服务Token鉴权设计的几种方案
【8月更文挑战第18天】在微服务架构中,Token鉴权是确保服务安全性的重要环节。本文将详细介绍几种常见的微服务Token鉴权设计方案,旨在帮助大家在工作和学习中更好地理解和应用这些技术。
972 2
|
存储 JSON 前端开发
JavaWeb中用来定义统一的响应结果的result类
JavaWeb中用来定义统一的响应结果的result类
877 0