当前位置: 首页 > news >正文

nodejs 013:Prect 样式复用(multiple classes)例子

Prect 简单示例

  • Prect 为使用相同的现代 API 的快速 3kB React 替代方案。代码形式与 React 基本相同。部分语法区别可见 prect-differences-to-react。以下是一个 Prect 简单示例。

Button目录Button.css:

.this {display: inline-block;padding: 3px 8px;margin-bottom: 0;font-size: 0.9rem;line-height: 1.4;text-align: center;white-space: nowrap;vertical-align: middle;cursor: default;background-image: none;border: 1px solid transparent;border-radius: var(--radius-size);box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06);-webkit-app-region: no-drag;cursor: pointer;
}.this:focus {outline: none;box-shadow: none;
}

Button目录index.jsx:

import { h } from 'preact';
import styles from './Button.css'; // CSS Modules模块化,需要打包工具支持,比如webpack在style-loader配置const Button = ({className,children,type = 'default',...props
}) => (<button// CSS Modules模块化,需要打包工具支持,比如webpack在style-loader配置className={${styles.this} ${styles[type]} ${className ? className : ''}}{...props}>{ children }</button>
);export default Button;

src使用的例子index.jsx

import { h, Component, render } from 'preact';
import Button from '../Button';class App extends Component { render() { return (<div><h1>欢迎使用按钮组件</h1><Button children={'点击我'}/></div>);}
}render(<App />,document.querySelector('#root'))

prect 中multiple classes样式管理

  • 前端的"multiple classes" 通常指的是在 HTML 元素中同时应用多个 CSS 类。类似<div class="class1 class2 class3">内容</div>
    这样做的主要目的是为了更好地管理样式,提高代码的可复用性和可维护性。
  1. 样式复用:通过将多个类组合在一起,可以灵活地复用已有的样式。例如,你可以有一个基础样式类和一个特定样式类:

    <div class="box primary">内容</div>
    

    在这个例子中,box 是基础样式,而 primary 可能是特定的颜色或背景。

  2. 响应式设计:可以为不同的屏幕尺寸或状态应用不同的类。例如:

    <button class="btn large hidden-on-mobile">点击我</button>
    

    这里 largehidden-on-mobile 可以分别控制按钮的大小和在移动设备上的可见性。

  3. 状态管理:当元素的状态发生变化时,可以通过添加或移除类来改变样式。例如,添加 active 类表示按钮被点击:

    button.classList.add('active');
    

Button目录Button.css:

.this {display: inline-block;padding: 3px 80px;margin-bottom: 0;font-size: 0.9rem;line-height: 1.4;text-align: center;white-space: nowrap;vertical-align: middle;cursor: default;background-image: none;border: 1px solid transparent;border-radius: var(--radius-size);box-shadow: 0 1px 1px rgba(0, 0, 0, 0.06);-webkit-app-region: no-drag;cursor: pointer;}.this:focus {outline: none;box-shadow: none;
}.default {color: #123eed;border-top-color: #c2c0c2;border-right-color: #c2c0c2;border-bottom-color: #a19fa1;border-left-color: #c2c0c2;background-color: #fcfcfc;background-image: linear-gradient(to bottom, #fcfcfc 0%, #f1f1f1 100%);
}.default:active {/* background-color: #ddd; */background-color: #20B2AA; /* 蓝绿色 */background-image: none;
}

Button目录index.jsx:

import { h } from 'preact';
import './Button.css';const Button = ({className,text,...props
}) => (<buttonclassName={`this ${className || ''}`}>{ text}</button>
);export default Button;

src使用的例子index.jsx

import { h, Component, render } from 'preact';
import Button from '../Button';class App extends Component { state = {Text: "WORLD",};  render() { return (<div><h1>欢迎使用按钮组件</h1><Button text={'HELLO WORLD'} className={'default'}/></div>);}
}render(<App />,document.querySelector('#root'))

效果

在这里插入图片描述

CG

  • 注:React 组件以大写字母开头,而 HTML 标签则必须是小写字母。
http://www.lryc.cn/news/443249.html

相关文章:

  • MQ入门(一):同步调用和异步调用--RabbitMQ基础入门
  • 由于安全风险,安全领导者考虑禁止人工智能编码
  • 地图相关的系统软件及插件
  • Elasticsearch如何排序,分页以及高亮查询
  • Transformer预测 | 基于Transformer心率时间序列预测(tensorflow)
  • 科研绘图系列:R语言误差连线图(errobar linechart)
  • 智能BI项目第五期
  • Android-UI设计
  • docker desktop windows stop
  • Qt容器类控件——QGroupBox和QTabWidget
  • qt-creator-10.0.2之后版本的jom.exe构建和编译速度慢下来了
  • ESP32-WROOM-32 [创建AP站点-TCP服务端-数据收发]
  • 工业机器视觉中的常见需求
  • JavaWeb的Filter详解
  • 【iOS】KVC的学习
  • 影刀RPA实战:网页爬虫之药品数据
  • python禁止位置传参函数
  • java面试题第一弹
  • 住宅HTTP代理:提升网络隐私与安全的新选择
  • 字符串函数(2)
  • Linux--守护进程与会话
  • C++ 笔试常用算法模板
  • 李宏毅2023机器学习作业HW07解析和代码分享
  • ansible远程自动化运维、常用模块详解
  • 【若依框架】按时间查询数据的操作
  • 人工智能将来好就业吗?
  • JAVA SE 11
  • 【MySQ】在MySQL里with 的用法
  • 多源最短路径
  • 在 Mac 中设置环境变量