第2章:定制化高可用前台样式

当我们编写一个项目的时候,我们需要同一个样式,如色值。但是我们在编写的时候我们需要编写大量的className,来编写css样式。而且因为css和html分离,我们进行查看的时候总是十分不方便。以及在响应式、主题切换实现十分复杂。

基于以上原因,我们引出了tailwindcss:https://tailwindcss.com/docs/installation/using-vite。一个css可视化工具。

安装tailwindcss

安装命令: npm install -D tailwindcss@3.0.23 postcss@8.4.8 autoprefixer@10.4.2

安装完成后,我们可以使用npx tailwindcss init -p,执行完成后,在项目根目录下会生成tailwind.config.css

编写以下内容,表示tailwindcss可以用于到此路径

module.exports = {
  //tailwind可以应用的地方
  content: ['./index.html','./src/**/*.{vue,js}'],
  theme: {
    extend: {},
  },
  plugins: [],
}
  • content就是来编写可以使用的路径。

在src/index.scss里面引入tailwind基础模块

//导入 tailwind 的基础指令组件
@tailwind base;
@tailwind components;
@tailwind utilities;

在main.js里面引入此样式

import { createApp } from 'vue'
import App from './App.vue'
import './styles/index.scss'

createApp(App).mount('#app')

安装sass:npm i -D sass@1.45.0

出现以上页面表示tailwindcss安装成功。

tailwind设计理念

颗粒度自上而下组件增大,颗粒度越大则约束性越高,可定制性越弱

  1. 行内样式:样式全部写入行内。自由度最高,可定制化最强。但是不方便样式的复用。每次都要写整的样式。
  2. 原子化css:每个类名都代表了一个css属性。自由度依然很强,可定制化依然很高,也方便复用。但是大量的样式会造成大量的类名。
  3. 传统形式:通过好几个语义化的class来描述一段css。封装性强,语义化强。自由度和可定制化性一般(比如cart标记好一个卡片但是其边框,弧度,阴影都规定好了)。但是大量的html需要大量的语义化class。
  4. 组件形式:在组件库中极其常见。封装性极强(样式和功能都封装了),语言化强。但是自由度和可定制化较差。

而我们的tailwindcss就是使用了原子化css里面给我们封装了类以便我们使用。

代码样式统一工具Prettier

安装prettier

在项目的根目录下创建.prettierrc文件,并配置以下内容

{
    // 代码结尾不加分号
    "semi": false,
    // 优先单引号
    "singleQuote": true,
    // 不添加尾随逗号
    "trailingComma": "none"
}

配置格式代码,鼠标右键点击使用格式化文件

安装tailwindcss插件

项目的基本目录结构

我们需要先安装vue-router和vuex:npm i -save vuex@4.0.2 vue-router@4.0.14

src
├─ App.vue// 项目根组件,一级路由出口
├─ api // 接口请求
├─ assets // 静态资源
│ ├─ icons //svg icon 图标
│ ├─ images //image 图标。比如: xxx.png
│ └─ logo.png//logo
├─ components // 通用的业务组件。比如:一个组件在多个页面中使用到
├─ constants // 常量
├─ directives // 自定义指令
├─ libs // 通用组件,可用于构建中台物料库或通用组件库
├─ main.js// 入口文件
├─ permission.js// 页面权限控制中心
├─ router // 路由
│ ├─ index.js// 路由处理中心
│ └─ modules // 路由模块
│ ├─ mobile-routes.js// 移动端路由
│ └─ pc-routes.js// PC 端路由
├─ store // 全局状态
│ ├─ getters.js// 全局状态访问处理
│ ├─ index.js// 全局状态中心
│ └─ modules // 状态子模块
├─ styles // 全局样式
│ └─ index.scss// 全局通用的样式处理
├─ utils // 工具模块
├─ vendor // 外部供应商资源。比如:人类行为认证
└─ views // 页面组件,与 components 的区别在于:此处组件对应路由由表,以页面的形式展示
└─ layout // 用于 PC 端,分割一级路由和二级路由
├─ components // 该页面组件下的业务组件
└─ index.vue//layout 组件
tailwind.config.js//tailwind css 配置文件,与 src 平级
vite.config.js//vite 配置文件,与 src 平级
内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,涵盖正向与逆向运动学求解、正向动力学控制,并采用拉格朗日-欧拉法推导逆向动力学方程,所有内容均通过Matlab代码实现。同时结合RRT路径规划与B样条优技术,提升机械臂运动轨迹的合理性与平滑性。文中还涉及多种先进算法与仿真技术的应用,如状态估计中的UKF、AUKF、EKF等滤波方法,以及PINN、INN、CNN-LSTM等神经网络模型在工程问题中的建模与求解,展示了Matlab在机器人控制、智能算法与系统仿真中的强大能力。; 适合人群:具备一定Ma六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)tlab编程基础,从事机器人控制、自动、智能制造、人工智能等相关领域的科研人员及研究生;熟悉运动学、动力学建模或对神经网络在控制系统中应用感兴趣的工程技术人员。; 使用场景及目标:①实现六自由度机械臂的精确运动学与动力学建模;②利用人工神经网络解决传统解析方法难以处理的非线性控制问题;③结合路径规划与轨迹优提升机械臂作业效率;④掌握基于Matlab的状态估计、数据融合与智能算法仿真方法; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点理解运动学建模与神经网络控制的设计流程,关注算法实现细节与仿真结果分析,同时参考文中提及的多种优与估计方法拓展研究思路。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值