三大主流前端
特性 | React | Vue.js | Angular |
开发者 | 尤雨溪 | ||
初始发布年份 | 2013 | 2014 | 2010 (AngularJS), 2016 (Angular 2+) |
核心理念 | 视图层,单向数据流 | 渐进式框架,响应式数据绑定 | 全面框架,模块化设计 |
使用语言 | JavaScript,JSX | JavaScript,HTML 模板 | TypeScript |
数据绑定 | 单向数据流 | 双向数据绑定(可选) | 双向数据绑定 |
路由管理 | 通过第三方库(如 React Router) | 内置 vue-router | 内置 Angular Router |
状态管理 | 通过第三方库(如 Redux, MobX) | Vuex | 内置服务和 RxJS |
性能优化 | 虚拟 DOM | 虚拟 DOM | 变更检测机制 |
学习曲线 | 中等 | 低 | 高 |
社区和生态系统 | 大型,丰富的第三方库和工具 | 中型,快速增长的生态系统 | 大型,内置功能丰富 |
文档和教程 | 官方文档详细,社区教程丰富 | 官方文档详细,社区教程丰富 | 官方文档详细,社区教程丰富 |
使用场景 | 单页应用、移动应用、复杂的前端项目 | 单页应用、移动应用、渐进式增强的项目 | 企业级应用、大型复杂项目 |
基于以上的增强框架有以下:
特性 | Next.js | Nuxt.js | Angular Universal |
基于的框架 | React | Vue.js | Angular |
初始发布年份 | 2016 | 2016 | 2016 (Angular Universal) |
服务端渲染 (SSR) | 是 | 是 | 是 |
静态网站生成 (SSG) | 是 | 是 | 否(主要是 SSR) |
文件路由 | 是 | 是 | 否(需要手动配置路由) |
数据获取 | 支持静态和动态的数据获取 | 支持静态和动态的数据获取 | 支持静态和动态的数据获取 |
API 路由 | 是 | 否 | 否 |
性能优化 | 自动代码分割、图像优化 | 自动代码分割、SEO 优化 | 依赖于 Angular 的变更检测和优化机制 |
开发者体验 | 易于上手,丰富的插件和社区支持 | 易于上手,集成度高 | 学习曲线高,适用于熟悉 Angular 的开发者 |
社区和生态系统 | 大型,丰富的第三方库和工具 | 中型,快速增长的生态系统 | 大型,内置功能丰富 |
文档和教程 | 官方文档详细,社区教程丰富 | 官方文档详细,社区教程丰富 | 官方文档详细,社区教程丰富 |
使用场景 | 企业级应用、博客、营销网站 | 企业级应用、博客、营销网站 | 企业级应用、大型复杂项目 |
一个AI生成前端页面的神器
这是使用 大预语言模型LLM 生成 前端工具。
项目地址:https://github.com/bravekingzhang/gpt-frontend-code-gen
先看效果
1、一句话生成一个前端页面
2、持续迭代,再提要求,修改下为 iOS 风格。
3、继续提示指令,修改布局。
功能
-
• 使用 GPT-4 或Kimi 生成 React 组件。
-
• 支持 Chakra UI 组件\ShadcnUI 组件生成。
-
• 实时预览生成的组件。
-
• 通过持续对话修改和更新组件。
-
• 配置自己的 APIKey 和 BaseUrl,支持多种大模型。
-
• 使用 Docker 和 Docker Compose 一键设置和启动。
技术栈
-
• 前端:React, Chakra UI, vite
-
• 后端:Koa
核心代码
router.post("/generate-code", async (ctx)=>{ const{ useShadcnUI, prompt, apiKey, baseUrl, model }= ctx.request.body; const uiMode = useShadcnUI ?"React & Shadcn UI":"React & Chakra UI"; const uiExample = useShadcnUI ? previewPageContentShadcnUI : previewPageContent; try{ const currentCode = readCode(); const detailedPrompt =` Blow is the existing code,I wrapped it in a code block for better readability: \`\`\`jsx ${currentCode} \`\`\` Please make the following changes: ${prompt} Return the complete and functional implementation code without any additional explanations and any markdown code block markers. `; const messages =[ { role:"system", content:`You are a professional front-end developer. Only provide the complete and functional implementation code without any additional explanations and any markdown code block markers, whether modifying existing code or writing from scratch. always use ${uiMode} for the implementation. Here is a example : \`\`\`jsx ${uiExample} \`\`\ `, }, { role:"user", content: detailedPrompt }, ]; const requestData ={ messages, model, max_tokens:4096, }; const response = await axios.post( `${baseUrl}/v1/chat/completions`, requestData, { headers:{ Authorization:`Bearer ${apiKey}`, }, } ); const updatedCode = response.data.choices[0].message.content .replace(/```jsx|```/g,"") .trim(); writeCode(updatedCode); autoCommit(`feat:${prompt}`); ctx.body ={ success:true, code: updatedCode, }; }catch(error){ ctx.body ={ success:false, error: error.message, }; } });
这里定义一个 POST 路由/generate-code,用于生成代码。
从请求体中获取useShadcnUI、prompt、apiKey、baseUrl和model。
根据useShadcnUI选择不同的 UI 模式和示例代码。
读取当前代码并构建详细的提示detailedPrompt。
构建请求数据requestData并发送请求给 OpenAI 的 GPT 模型。
获取返回的代码,去掉 Markdown 代码块标记,更新代码文件并自动提交变更。
返回生成的代码或错误信息。
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.iotsj.com//kuaixun/3319.html