前端框架对比与选择

news2024/10/2 22:20:36

在这里插入图片描述

🤖 作者简介:水煮白菜王 ,一位资深前端劝退师 👻
👀 文章专栏: 前端专栏 ,记录一下平时在博客写作中,总结出的一些开发技巧✍。
感谢支持💕💕💕

目录

  • 前端框架对比与选择
    • 1. React
      • 1.1 概述
      • 1.2 优点
      • 1.3 缺点
      • 1.4 适用场景
      • 1.5 代码示例
    • 2. Vue
      • 2.1 概述
      • 2.2 优点
      • 2.3 缺点
      • 2.4 适用场景
      • 2.5 代码示例
    • 3. Angular
      • 3.1 概述
      • 3.2 优点
      • 3.3 缺点
      • 3.4 适用场景
      • 3.5 代码示例
    • 4. Svelte
      • 4.1 概述
      • 4.2 优点
      • 4.3 缺点
      • 4.4 适用场景
      • 4.5 代码示例
    • 5. Electron
      • 5.1 概述
      • 5.2 优点
      • 5.3 缺点
      • 5.4 适用场景
      • 5.5 代码示例
    • 6. Next.js
      • 6.1 概述
      • 6.2 优点
      • 6.3 缺点
      • 6.4 适用场景
      • 6.5 代码示例
    • 7. Nuxt.js
      • 7.1 概述
      • 7.2 优点
      • 7.3 缺点
      • 7.4 适用场景
      • 7.5 代码示例
    • 8. Gatsby
      • 8.1 概述
      • 8.2 优点
      • 8.3 缺点
      • 8.4 适用场景
      • 8.5 代码示例
    • 9. Preact
      • 9.1 概述
      • 9.2 优点
      • 9.3 缺点
      • 9.4 适用场景
      • 9.5 代码示例
    • 10. 国内大厂自研前端框架
      • 10.1 Dumi
        • 10.1.1 概述
        • 10.1.2 优点
        • 10.1.3 缺点
        • 10.1.4 适用场景
      • 9.5 代码示例
      • 10.2 Taro
        • 10.2.1 概述
        • 10.2.2 优点
        • 10.2.3 缺点
        • 10.2.4 适用场景
      • 10.2.5 代码示例
      • 10.3 Ant Design Pro
        • 10.3.1 概述
        • 10.3.2 优点
        • 10.3.3 缺点
        • 10.3.4 适用场景
      • 10.3.5 代码示例
    • 11. 总结
      • 11.1 选择建议
      • 11.2 未来趋势

在这里插入图片描述

前端框架对比与选择

随着前端技术的快速发展,各种前端框架层出不穷,每个框架都有其独特的优势和适用场景。本文将详细对比几个主流的前端框架——React、Vue、Angular、Svelte、Electron、Next.js、Nuxt.js、Gatsby、Preact,以及国内大厂自研的前端框架,如Dumi、Taro、Ant Design Pro等,并提供选择建议,帮助开发者根据项目需求做出最佳选择。

1. React

1.1 概述

React 是由 Facebook 开发并维护的一个用于构建用户界面的 JavaScript 库。它主要用于构建单页面应用程序(SPA)和移动应用。

1.2 优点

  • 组件化:React 采用组件化开发,使得代码复用性和可维护性更高。
  • 虚拟 DOM:通过虚拟 DOM 提高性能,减少不必要的 DOM 操作。
  • 生态系统丰富:拥有庞大的社区支持和丰富的第三方库。
  • 学习曲线适中:对于初学者来说,学习曲线相对平缓。

1.3 缺点

  • 文档不够全面:官方文档有时不够详细,需要查阅社区资源。
  • 灵活性高但复杂度增加:高度灵活的架构可能导致项目结构复杂。
  • 状态管理复杂:大型项目中状态管理较为复杂,需要引入 Redux 等工具。

1.4 适用场景

  • 单页面应用程序:适合构建复杂的单页面应用程序。
  • 大型项目:适合大型企业级项目,尤其是需要高度定制化的场景。
  • 社区支持:适合需要丰富社区资源和第三方库的项目。

1.5 代码示例

import React, { useState } from 'react';

function App() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

export default App;

2. Vue

2.1 概述

Vue 是由尤雨溪开发并维护的一个渐进式 JavaScript 框架。它易于上手,同时提供了强大的功能,适合构建复杂的单页面应用程序。

2.2 优点

  • 易学易用:语法简洁,学习曲线平缓,适合初学者快速上手。
  • 模板系统:使用模板系统,代码可读性高。
  • 双向数据绑定:通过 v-model 实现双向数据绑定,简化数据管理。
  • 体积小:核心库体积小,加载速度快。

2.3 缺点

  • 社区规模较小:相对于 React 和 Angular,社区规模较小,第三方库较少。
  • 生态不如 React 成熟:虽然发展迅速,但生态成熟度略逊于 React。

2.4 适用场景

  • 小型项目:适合快速开发小型项目。
  • 中型项目:适合中型项目,尤其是需要快速迭代的场景。
  • 个人项目:适合个人开发者或小团队快速上手。

2.5 代码示例

<template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    };
  },
  methods: {
    increment() {
      this.count++;
    }
  }
};
</script>

3. Angular

在这里插入图片描述

3.1 概述

Angular 是由 Google 开发并维护的一个完整的前端框架。它采用了 MVC 架构,适合构建大型企业级应用程序。

3.2 优点

  • 完整的解决方案:提供从路由到依赖注入的完整解决方案。
  • 类型安全:基于 TypeScript,提供类型检查,减少运行时错误。
  • 强大的模板系统:模板系统强大,支持双向数据绑定和指令。
  • 社区支持:拥有庞大的社区支持和丰富的文档。

3.3 缺点

  • 学习曲线陡峭:对于初学者来说,学习曲线较陡峭。
  • 项目初始化复杂:项目初始化和配置较为复杂。
  • 体积较大:核心库体积较大,初始加载时间较长。

3.4 适用场景

  • 大型企业级项目:适合构建大型企业级应用程序。
  • 需要类型安全的项目:适合需要类型检查和静态分析的项目。
  • 长期维护的项目:适合需要长期维护和扩展的项目。

3.5 代码示例

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  template: `
    <div>
      <p>Count: {{ count }}</p>
      <button (click)="increment()">Increment</button>
    </div>
  `,
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  count = 0;

  increment() {
    this.count++;
  }
}

4. Svelte

在这里插入图片描述

4.1 概述

Svelte 是一个较新的前端框架,由 Rich Harris 开发。它在编译时将框架逻辑移除,生成纯粹的 JavaScript,从而提高运行时性能。

4.2 优点

  • 高性能:编译时优化,生成的代码更高效。
  • 体积小:运行时没有框架开销,生成的代码体积小。
  • 易于上手:语法简洁,学习曲线平缓。
  • 反应式编程:内置反应式编程模型,简化状态管理。

4.3 缺点

  • 社区较小:相对于 React 和 Vue,社区规模较小,第三方库较少。
  • 生态不成熟:虽然发展迅速,但生态成熟度略逊于 React 和 Vue。

4.4 适用场景

  • 高性能需求:适合需要高性能的应用程序。
  • 小型到中型项目:适合快速开发小型到中型项目。
  • 个人项目:适合个人开发者或小团队快速上手。

4.5 代码示例

<script>
  let count = 0;

  function increment() {
    count += 1;
  }
</script>

<div>
  <p>Count: {count}</p>
  <button on:click={increment}>Increment</button>
</div>

5. Electron

在这里插入图片描述

5.1 概述

Electron 是一个使用 JavaScript、HTML 和 CSS 构建跨平台桌面应用程序的框架。它结合了 Chromium 渲染引擎和 Node.js 运行时。

5.2 优点

  • 跨平台:支持 Windows、macOS 和 Linux,实现一次开发,多平台运行。
  • Web 技术栈:使用 Web 技术栈,前端开发者可以快速上手。
  • 丰富的 API:提供丰富的原生 API,方便访问系统功能。
  • 社区活跃:拥有活跃的社区和丰富的第三方库。

5.3 缺点

  • 体积较大:打包后的应用程序体积较大。
  • 性能问题:某些场景下,性能可能不如原生应用。
  • 资源消耗:运行时资源消耗较高。

5.4 适用场景

  • 跨平台桌面应用:适合开发需要跨平台的桌面应用程序。
  • Web 技术栈项目:适合前端开发者快速开发桌面应用。
  • 需要原生功能:适合需要访问系统原生功能的应用程序。

5.5 代码示例

// main.js
const { app, BrowserWindow } = require('electron');

function createWindow() {
  const win = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      nodeIntegration: true
    }
  });

  win.loadFile('index.html');
}

app.whenReady().then(createWindow);

app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

app.on('activate', () => {
  if (BrowserWindow.getAllWindows().length === 0) {
    createWindow();
  }
});

6. Next.js

在这里插入图片描述

6.1 概述

Next.js 是一个基于 React 的轻量级框架,用于构建服务端渲染(SSR)和静态生成的网站。

6.2 优点

  • 服务端渲染:支持 SSR,提高首屏加载速度和 SEO。
  • 静态生成:支持静态生成,适合构建静态网站。
  • 自动代码分割:自动进行代码分割,优化加载性能。
  • 易于上手:基于 React,学习曲线平缓。

6.3 缺点

  • 配置复杂:某些高级功能需要复杂的配置。
  • 依赖 React:需要对 React 有较深的理解。

6.4 适用场景

  • 服务端渲染:适合需要 SSR 的项目。
  • 静态网站:适合构建静态生成的网站。
  • SEO 优化:适合需要 SEO 优化的项目。

6.5 代码示例

// pages/index.js
import { useState } from 'react';

export default function Home() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
  );
}

7. Nuxt.js

在这里插入图片描述

7.1 概述

Nuxt.js 是一个基于 Vue 的轻量级框架,用于构建服务端渲染(SSR)和静态生成的网站。

7.2 优点

  • 服务端渲染:支持 SSR,提高首屏加载速度和 SEO。
  • 静态生成:支持静态生成,适合构建静态网站。
  • 自动代码分割:自动进行代码分割,优化加载性能。
  • 易于上手:基于 Vue,学习曲线平缓。

7.3 缺点

  • 配置复杂:某些高级功能需要复杂的配置。
  • 依赖 Vue:需要对 Vue 有较深的理解。

7.4 适用场景

  • 服务端渲染:适合需要 SSR 的项目。
  • 静态网站:适合构建静态生成的网站。
  • SEO 优化:适合需要 SEO 优化的项目。

7.5 代码示例

<template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      count: 0
    };
  },
  methods: {
    increment() {
      this.count++;
    }
  }
};
</script>

8. Gatsby

在这里插入图片描述

8.1 概述

Gatsby 是一个基于 React 的静态网站生成器,专注于性能优化和开发体验。

8.2 优点

  • 高性能:优化了静态生成和加载性能。
  • 丰富的插件系统:提供丰富的插件和主题。
  • GraphQL:内置 GraphQL 支持,方便数据管理。
  • 易于上手:基于 React,学习曲线平缓。

8.3 缺点

  • 配置复杂:某些高级功能需要复杂的配置。
  • 依赖 React:需要对 React 有较深的理解。

8.4 适用场景

  • 静态网站:适合构建静态生成的网站。
  • 高性能需求:适合需要高性能的项目。
  • 内容驱动的网站:适合内容驱动的网站,如博客和文档。

8.5 代码示例

// src/pages/index.js
import React from 'react';
import { graphql } from 'gatsby';

export default function Home({ data }) {
  const { count } = data.site.siteMetadata;

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => console.log('Increment')}>Increment</button>
    </div>
  );
}

export const query = graphql`
  query {
    site {
      siteMetadata {
        count
      }
    }
  }
`;

9. Preact

在这里插入图片描述

9.1 概述

Preact 是一个轻量级的 React 替代品,体积更小,性能更高。

9.2 优点

  • 体积小:核心库体积小,加载速度快。
  • 性能高:优化了性能,适合性能敏感的项目。
  • 兼容 React:API 与 React 兼容,可以轻松迁移。
  • 易于上手:基于 React,学习曲线平缓。

9.3 缺点

  • 社区较小:相对于 React,社区规模较小,第三方库较少。
  • 生态不成熟:虽然发展迅速,但生态成熟度略逊于 React。

9.4 适用场景

  • 性能敏感的项目:适合需要高性能的项目。
  • 小型项目:适合快速开发小型项目。
  • 嵌入式设备:适合资源受限的嵌入式设备。

9.5 代码示例

import { h, Component } from 'preact';

class App extends Component {
  state = { count: 0 };

  increment = () => {
    this.setState({ count: this.state.count + 1 });
  };

  render() {
    return (
      <div>
        <p>Count: {this.state.count}</p>
        <button onClick={this.increment}>Increment</button>
      </div>
    );
  }
}

export default App;

10. 国内大厂自研前端框架

10.1 Dumi

在这里插入图片描述

10.1.1 概述

Dumi 是由蚂蚁金服开发的组件开发工具,支持组件库的开发、测试和文档生成。Dumi是一个基于约定的文档管理工具,特别适用于组件开发场景,旨在让开发者能够专注于组件开发和文档编写,具有开箱即用的特点。它支持将注意力集中在组件开发和文档编写上,提供了一种轻量级且开发者友好的方式来生成文档。Dumi支持多种组件库类型,包括但不限于React,并且特别适合迁移React组件库到Dumi环境。dumi是基于 Umi 打造,dumi 就是可以用来写文档、官网和组件库 Demo 的 Umi。

10.1.2 优点
  • 组件开发:专为组件库开发设计,提供丰富的开发工具。
  • 文档生成:自动生成组件文档,提高开发效率。
  • 插件系统:支持丰富的插件,扩展性强。
10.1.3 缺点
  • 社区较小:相对于主流框架,社区规模较小。
  • 学习曲线:需要一定的学习成本。
10.1.4 适用场景
  • 组件库开发:适合开发和维护组件库。
  • 企业内部项目:适合企业内部项目,尤其是需要组件化开发的场景。

9.5 代码示例

// components/Button.tsx
import React from 'react';

interface ButtonProps {
  type?: 'primary' | 'secondary';
  onClick?: () => void;
}

const Button: React.FC<ButtonProps> = ({ type = 'primary', onClick, children }) => {
  return (
    <button className={`button ${type}`} onClick={onClick}>
      {children}
    </button>
  );
};

export default Button;

10.2 Taro

10.2.1 概述

Taro 是由京东开发的一个多端统一开发方案,支持微信小程序、H5、React Native 等多端开发。

10.2.2 优点
  • 多端开发:一套代码,多端运行,提高开发效率。
  • 生态丰富:支持多种平台,生态丰富。
  • 社区活跃:拥有活跃的社区和丰富的文档。
10.2.3 缺点
  • 性能问题:某些平台上的性能可能不如原生开发。
  • 学习曲线:需要一定的学习成本。
10.2.4 适用场景
  • 多端开发:适合需要多端开发的项目。
  • 小程序开发:适合微信小程序开发。
  • 跨平台应用:适合需要跨平台的应用。

10.2.5 代码示例

// src/pages/index/index.jsx
import Taro, { useState } from '@tarojs/taro';
import { View, Button } from '@tarojs/components';

export default function Index() {
  const [count, setCount] = useState(0);

  const increment = () => {
    setCount(count + 1);
  };

  return (
    <View>
      <View>Count: {count}</View>
      <Button onClick={increment}>Increment</Button>
    </View>
  );
}

10.3 Ant Design Pro

10.3.1 概述

Ant Design Pro 是由蚂蚁金服开发的企业级中后台前端/设计解决方案。

10.3.2 优点
  • 企业级:专为企业级应用设计,提供丰富的组件和模板。
  • 设计规范:遵循 Ant Design 设计规范,保证一致的用户体验。
  • 开箱即用:提供多种预设模板,开箱即用。
10.3.3 缺点
  • 学习曲线:需要一定的学习成本。
  • 定制性:某些场景下定制性较差。
10.3.4 适用场景
  • 企业级应用:适合开发企业级中后台应用。
  • 快速开发:适合需要快速开发的应用。
  • 设计一致性:适合需要设计一致性的项目。

10.3.5 代码示例

// src/pages/Dashboard/Analysis.js
import React from 'react';
import { Card, Button } from 'antd';

const Analysis = () => {
  const [count, setCount] = React.useState(0);

  const increment = () => {
    setCount(count + 1);
  };

  return (
    <Card title="Dashboard">
      <p>Count: {count}</p>
      <Button type="primary" onClick={increment}>Increment</Button>
    </Card>
  );
};

export default Analysis;

11. 总结

框架优点缺点适用场景
React- 组件化
- 虚拟 DOM
- 生态系统丰富
- 学习曲线适中
- 文档不够全面
- 灵活性高但复杂度增加
- 状态管理复杂
- 单页面应用程序
- 大型项目
- 社区支持
Vue- 易学易用
- 模板系统
- 双向数据绑定
- 体积小
- 社区规模较小
- 生态不如 React 成熟
- 小型项目
- 中型项目
- 个人项目
Angular- 完整的解决方案
- 类型安全
- 强大的模板系统
- 社区支持
- 学习曲线陡峭
- 项目初始化复杂
- 体积较大
- 大型企业级项目
- 需要类型安全的项目
- 长期维护的项目
Svelte- 高性能
- 体积小
- 易于上手
- 反应式编程
- 社区较小
- 生态不成熟
- 高性能需求
- 小型到中型项目
- 个人项目
Electron- 跨平台
- Web 技术栈
- 丰富的 API
- 社区活跃
- 体积较大
- 性能问题
- 资源消耗
- 跨平台桌面应用
- Web 技术栈项目
- 需要原生功能
Next.js- 服务端渲染
- 静态生成
- 自动代码分割
- 易于上手
- 配置复杂
- 依赖 React
- 服务端渲染
- 静态网站
- SEO 优化
Nuxt.js- 服务端渲染
- 静态生成
- 自动代码分割
- 易于上手
- 配置复杂
- 依赖 Vue
- 服务端渲染
- 静态网站
- SEO 优化
Gatsby- 高性能
- 丰富的插件系统
- GraphQL
- 易于上手
- 配置复杂
- 依赖 React
- 静态网站
- 高性能需求
- 内容驱动的网站
Preact- 体积小
- 性能高
- 兼容 React
- 易于上手
- 社区较小
- 生态不成熟
- 性能敏感的项目
- 小型项目
- 嵌入式设备
Dumi- 组件开发
- 文档生成
- 插件系统
- 社区较小
- 学习曲线
- 组件库开发
- 企业内部项目
Taro- 多端开发
- 生态丰富
- 社区活跃
- 性能问题
- 学习曲线
- 多端开发
- 小程序开发
- 跨平台应用
Ant Design Pro- 企业级
- 设计规范
- 开箱即用
- 学习曲线
- 定制性
- 企业级应用
- 快速开发
- 设计一致性

11.1 选择建议

  • React:适合大型企业级项目,需要高度定制化和丰富社区资源的场景。
  • Vue:适合快速开发小型到中型项目,适合初学者和需要快速迭代的场景。
  • Angular:适合大型企业级项目,需要类型安全和完整解决方案的场景。
  • Svelte:适合需要高性能的小型到中型项目,适合个人开发者或小团队快速上手。
  • Electron:适合开发跨平台的桌面应用程序,适合前端开发者快速上手。
  • Next.js:适合需要 SSR 和静态生成的项目,适合需要 SEO 优化的项目。
  • Nuxt.js:适合需要 SSR 和静态生成的项目,适合需要 SEO 优化的项目。
  • Gatsby:适合构建静态网站,适合内容驱动的项目。
  • Preact:适合性能敏感的项目,适合小型项目和嵌入式设备。
  • Dumi:适合组件库开发和企业内部项目。
  • Taro:适合多端开发和微信小程序开发。
  • Ant Design Pro:适合企业级中后台应用和需要快速开发的项目。

11.2 未来趋势

  • React:持续更新,社区活跃,未来将继续保持领先地位。
  • Vue:发展迅速,社区逐渐壮大,未来有望成为主流框架之一。
  • Angular:虽然学习曲线较陡峭,但凭借 Google 的支持,依然会有稳定的用户群体。
  • Svelte:性能优越,社区逐渐扩大,未来前景看好。
  • Electron:跨平台优势明显,社区活跃,将持续受到欢迎。
  • Next.js:React 生态的重要组成部分,将持续发展。
  • Nuxt.js:Vue 生态的重要组成部分,将持续发展。
  • Gatsby:静态生成领域的重要玩家,将持续优化性能。
  • Preact:轻量级框架,适合性能敏感的项目,将持续受到关注。
  • Dumi:组件开发工具,适合企业内部项目,将持续优化。
  • Taro:多端开发方案,适合微信小程序开发,将持续发展。
  • Ant Design Pro:企业级中后台解决方案,将持续优化用户体验。

在这里插入图片描述
如果你觉得这篇文章对你有帮助,请点赞 👍、收藏 👏 并关注我!👀
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2165923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

功能测试详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、测试项目启动与研读需求文档 &#xff08;一&#xff09; 组建测试团队 1、测试团队中的角色 2、测试团队的基本责任 尽早地发现软件程序、系统或产品中所…

HarmonyOS鸿蒙开发实战(5.0)自定义路由栈管理

鸿蒙HarmonyOS NEXT开发实战往期文章必看&#xff08;持续更新......&#xff09; HarmonyOS NEXT应用开发性能实践总结 HarmonyOS NEXT应用开发案例实践总结合集 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门…

中伟视界:AI算法如何精准识别井下与传送带上堆料,提升矿山安全生产效率,减少事故风险

传送带堆料分为两种情况&#xff0c;一种是传送带的井下堆料检测AI算法&#xff0c;一种是传送带上面的堆料检测AI算法&#xff0c;传送带井下堆料检测AI算法是在带式输送机的漏煤下方井下安装摄像仪&#xff0c;通过视频分析检测井下堆煤情况&#xff0c;当洒煤堆积到一定程度…

31214324

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

T-Mobile AI客户服务:客户体验的新时代

目录 IntentCX的诞生利用AI的力量多方面的合作Nvidia的贡献客户服务的范式转变超越客户服务电信中AI的未来 T-Mobile宣布与著名的人工智能研究实验室OpenAI建立战略合作伙伴关系&#xff0c;这一开创性的举动旨在通过利用AI的力量来彻底改变公司的客户服务运营。 IntentCX的…

《解锁高效流程设计:深度剖析责任链模式与实战应用》

《解锁高效流程设计&#xff1a;深度剖析责任链模式与实战应用》 责任链模式 是一种行为设计模式&#xff0c;它允许多个对象来处理请求&#xff0c;而不预先指定具体的处理者。多个处理对象被连接成一条链&#xff0c;沿着这条链传递请求&#xff0c;直到某个处理对象决定处理…

【前端 25】

Ant Design框架使用教程&#xff1a;构建高效美观的React应用 引言 Ant Design 是一套企业级的 UI 设计语言和 React 组件库&#xff0c;主要用于开发和服务于企业级后台产品。它基于 React&#xff0c;并遵循 Ant Design 设计规范&#xff0c;提供了大量高质量、易用的 React…

Spring Boot集成Milvus快速入门demo

1.什么是Milvus&#xff1f; Milvus 是一种高性能、高扩展性的向量数据库&#xff0c;可在从笔记本电脑到大型分布式系统等各种环境中高效运行。它既可以开源软件的形式提供&#xff0c;也可以云服务的形式提供。 Milvus 是 LF AI & Data Foundation 下的一个开源项目&…

计算机的错误计算(一百零四)

摘要 计算机的错误计算&#xff08;二十七&#xff09;引入了错数概念。本节给出更为严格的证明。 本节主要讨论表达式计算结果中错误有效数字的数量&#xff0c;简称之为错数。因为0不含有有效数字&#xff0c;因此&#xff0c;除非特别说明&#xff0c;否则&#xff0c;本节…

【Go】-Websocket的使用

目录 为什么需要websocket 使用场景 在线教育 视频弹幕 Web端即时通信方式 什么是web端即时通讯技术&#xff1f; 轮询 长轮询 长连接 SSE websocket 通信方式总结 Websocket介绍 协议升级 连接确认 数据帧 socket和websocket 常见状态码 gorilla/websocket实…

10-pg内核之锁管理器(五)行锁

概念 数据库采用MVCC方式进行并发控制&#xff0c;读写并不会互相阻塞&#xff0c;但是写之间仍然存在冲突。如果还是采用常规锁那样加锁&#xff0c;则会耗费大量共享内存&#xff0c;进而影响性能。所以行锁通过元组级常规锁和xmax结合的方式实现。一般先通过xmax进行可见性…

Unity 新导航寻路演示(2)

对于静态场景来说&#xff0c;只需要3步 1.为场景Ground添加网格表面组件并烘焙 2.为player添加导航代理 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.AI;public class PlayerMove : MonoBehaviour {private NavMes…

2D动画转3D角色!无需建模- comfyUI工作流一键生成3d效果图!

如何将2d角色转化成3d角色&#xff1f; 不需要建模&#xff0c;通过一个2d转3d的工作流可以直接将你的2d图片转化成3d效果图。 而且操作特别简单&#xff0c;只需要3个步骤&#xff0c;这篇内容我们来说下这个工作路的使用 工作流特点 任意2D图片转换成3D风格 基于sd1.5模型…

ftdi_sio驱动学习笔记 3 - 端口操作

目录 1. ftdi_port_probe 1.1 私有数据结构ftdi_private 1.2 特殊probe处理 1.3 确定FTDI设备类型 1.4 确定最大数据包大小 1.5 设置读取延迟时间 1.6 初始化GPIO 1.6.1 使能GPIO 1.6.2 添加到系统 1.6.2.1 设置GPIO控制器的基本信息 1.6.2.2 设置GPIO控制器的元信息…

Apache Iceberg 与 Spark整合-使用教程(Iceberg 官方文档解析)

官方文档链接&#xff08;Spark整合Iceberg&#xff09; 1.Getting Started Spark 目前是进行 Iceberg 操作最丰富的计算引擎。官方建议从 Spark 开始&#xff0c;以理解 Iceberg 的概念和功能。 The latest version of Iceberg is 1.6.1.&#xff08;2024年9月24日11:45:55&…

如何在云端使用 Browserless 进行网页抓取?

云浏览器是什么&#xff1f; 云浏览器是一种基于云的组合&#xff0c;它将网页浏览器应用程序与一个虚拟化的容器相结合&#xff0c;实现了远程浏览器隔离的概念。开发人员可以使用流行的工具&#xff08;如 Playwright 和​ Puppeteer​&#xff09;来自动化网页浏览器&#…

repo 查看指定日期内,哪些仓库有修改,具体的修改详情

文章目录 想看指定时间段内仓库中修改了哪些具体的文件&#xff0c;是谁修改的&#xff0c;commit的备注信息等详情只想看某段时间内有更改的仓库的修改详情&#xff0c;其他没有修改的仓库不显示。 想看指定时间段内仓库中修改了哪些具体的文件&#xff0c;是谁修改的&#xf…

VSCode#include头文件时找不到头文件:我的解决方法

0.前言 1.在学习了Linux之后&#xff0c;我平常大部分都使用本地的XShell或者VSCode连接远程云服务器写代码&#xff0c;CentOS的包管理器为我省去了不少繁琐的事情&#xff0c;今天使用vscode打开本地目录想写点代码发现#include头文件后&#xff0c;下方出现了波浪线&#…

SparkSQL-初识

一、概览 Spark SQL and DataFrames - Spark 3.5.2 Documentation 我们先看下官网的描述&#xff1a; SparkSQL是用于结构化数据处理的Spark模块&#xff0c;与基本的Spark RDD API不同。Spark SQL提供的接口为Spark提供了更多关于正在执行的数据和计算结构的信息。在内部&a…

C++中vector类的使用

目录 1.vector类常用接口说明 1.1默认成员函数 1.1.1构造函数(constructor) 1.1.2 赋值运算符重载(operator()) 2. vector对象的访问及遍历操作(Iterators and Element access) 3.vector类对象的容量操作(Capacity) 4. vector类对象的修改及相关操作(Modifiers and Stri…