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

CloudStudio搭建Next框架博客_抛开电脑性能在云端编程(沉浸式体验)

文章目录

    • ⭐前言
    • ⭐进入cloud studio工作区指引
      • 💖 注册coding账号
      • 💖 选择cloud studio
      • 💖 cloud studio选择next.js
      • 💖 安装react的ui框架(tDesign)
      • 💖 安装axios
      • 💖 代理请求跨域
      • 💖 登录界面配置
      • 💖 注册界面配置
      • 💖 clone 仓库代码
      • 💖 运行效果
    • ⭐总结
    • ⭐结束

yma16-logo

⭐前言

大家好,我是yma16,本期给大家分享CloudStudio搭建Next框架博客_抛开电脑性能在云端编程。
next.js系列的往期文章
博客搭建_初始化next项目
博客搭建_登录注册
博客搭建_react-markdown渲染内容

Electron知识

Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 嵌入 Chromium 和 Node.js 到 二进制的 Electron 允许您保持一个 JavaScript 代码代码库并创建 在Windows上运行的跨平台应用 macOS和Linux——不需要本地开发 经验。

因为cloud studio和vscode底层的Electron框架有着异曲同工之妙

⭐进入cloud studio工作区指引

链接直达:
https://coding.net/products/cloudstudio
版本记录内容清晰,开发生态良好
product-studio

💖 注册coding账号

首选腾讯云账号登录,便于后续的服务器绑定。
创建项目
create-project

💖 选择cloud studio

选择左侧菜单栏的cloud studio
nav-menu

💖 cloud studio选择next.js

进入cloud studio 云端ide环境选择模板——next.js
next-js

ui就是在线的vscode,因为vscode本身就是Electron前端框架写的,个人理解这里是部署在服务器的当成了前端的项目工程.

cloud-studio-ui

发现这个是next的js版本,ok,由于我之前的博客讲解的是react版本的,那么接下来我们再来走一遍搭建。

💖 安装react的ui框架(tDesign)

同理于之前的next博客搭建
这里使用腾讯出品的ui框架tdesing

$ npm i tdesign-react

npm-install

在next.js引入
next.config.js配置

/** @type {import('next').NextConfig} */
const nextConfig = {reactStrictMode: true,experimental: {transpilePackages: ['tdesign-react']}
}
module.exports = nextConfig

_app.tsx配置

import '@/styles/globals.css'
import 'tdesign-react/dist/tdesign.css'; // 全局引入tdesign所有组件样式代码
import type { AppProps } from 'next/app'export default function App({ Component, pageProps }: AppProps) {return <Component {...pageProps} />
}

💖 安装axios

安装axios库

npm install axios

定义service

import axois from 'axios'export function loginAction(params){return axois.post('/api-blog/user/login/',params)
}export function registerAction(params){return axois.post('/api-blog/user/register/',params)
}

💖 代理请求跨域

跨域配置
next.config.js

/** @type {import('next').NextConfig} */const nextConfig = {reactStrictMode: true,experimental: {transpilePackages: ['tdesign-react']},async rewrites() {return [//代理重定向{ source: '/api-blog/:path*', destination: `https://yongma16.xyz/api/:path*/` },]},
}module.exports = nextConfig

💖 登录界面配置

login.tsx

import React from 'react';
import { Form, Input, Button, MessagePlugin,Link } from 'tdesign-react';
import { DesktopIcon, LockOnIcon } from 'tdesign-icons-react';
import {loginAction} from "../../service/user/userApi"
import { useRouter } from 'next/router'const { FormItem } = Form;export default function BaseForm() {const router = useRouter()const rules=[{ required: true, message: '不能为空', type: 'warning' }]const onSubmit = (e) => {console.log(e);if (e.validateResult === true) {loginAction({name:e.fields?.account,password:e.fields?.password}).then(res=>{console.log('res',res)MessagePlugin.info('登录成功');}).catch(r=>{MessagePlugin.error('登录失败\n'+JSON.stringify(r));})}};const jumpAction=()=>{router.push('/views/sys/register')}const onReset = (e) => {console.log(e);MessagePlugin.info('重置成功');};return (<div className={"login-box"}><div className={"login-container"}><div style={{width:'100%',textAlign:'center',marginBottom:'20px',fontWeight:'bold'}}>登录</div><div style={{ width: 350 }}><Form statusIcon={true} onSubmit={onSubmit} onReset={onReset} colon={true} labelWidth={0}><FormItem name="account" rules={rules}><Input clearable={true} prefixIcon={<DesktopIcon />} placeholder="请输入账户名" /></FormItem><FormItem name="password" rules={rules}><Input type="password" prefixIcon={<LockOnIcon />} clearable={true} placeholder="请输入密码"/></FormItem><FormItem><Button theme="primary" type="submit" block>登录</Button></FormItem></Form><div style={{width:'100%',textAlign:'center',marginTop:'10px'}} onClick={jumpAction}>没有账号?<Link theme="primary">前往注册</Link></div></div></div></div>);
}

💖 注册界面配置

register.tsx

import React from 'react';
import { Form, Input, Button, MessagePlugin,Link } from 'tdesign-react';
import { DesktopIcon, LockOnIcon } from 'tdesign-icons-react';
import {loginAction} from "../../service/user/userApi"
import { useRouter } from 'next/router'const { FormItem } = Form;export default function BaseForm() {const router = useRouter()const rules=[{ required: true, message: '不能为空', type: 'warning' }]const onSubmit = (e) => {console.log(e);if (e.validateResult === true) {loginAction({name:e.fields?.account,password:e.fields?.password}).then(res=>{console.log('res',res)MessagePlugin.info('登录成功');}).catch(r=>{MessagePlugin.error('登录失败\n'+JSON.stringify(r));})}};const jumpAction=()=>{router.push('/views/sys/register')}const onReset = (e) => {console.log(e);MessagePlugin.info('重置成功');};return (<div className={"login-box"}><div className={"login-container"}><div style={{width:'100%',textAlign:'center',marginBottom:'20px',fontWeight:'bold'}}>登录</div><div style={{ width: 350 }}><Form statusIcon={true} onSubmit={onSubmit} onReset={onReset} colon={true} labelWidth={0}><FormItem name="account" rules={rules}><Input clearable={true} prefixIcon={<DesktopIcon />} placeholder="请输入账户名" /></FormItem><FormItem name="password" rules={rules}><Input type="password" prefixIcon={<LockOnIcon />} clearable={true} placeholder="请输入密码"/></FormItem><FormItem><Button theme="primary" type="submit" block>登录</Button></FormItem></Form><div style={{width:'100%',textAlign:'center',marginTop:'10px'}} onClick={jumpAction}>没有账号?<Link theme="primary">前往注册</Link></div></div></div></div>);
}

💖 clone 仓库代码

这里原理已经讲的差不多了,然后克隆之前的仓库代码过来
git-clone
代码仓库:
https://gitcode.net/qq_38870145/next-blog.git

code-remote

💖 运行效果

登录样式
next-login-ui
注册样式
register-ui
登录成功!
login-success

⭐总结

Cloud Studio是一种云端编程工具,存在以下五种优势:

  1. 无需安装:Cloud Studio是一种基于云端的工具,无需安装任何软件或插件,只需要连接到互联网即可使用。

  2. 跨平台:Cloud Studio不仅可以在不同的操作系统上使用,而且还可以在不同的设备上使用,包括PC、平板电脑和手机等。

  3. 高效性:Cloud Studio可以提高工作效率,因为它能够自动保存代码,避免了代码丢失的风险。此外,Cloud Studio还可以与其他工具集成,例如Git和Jenkins等,更方便地进行开发和测试。

  4. 多语言支持:Cloud Studio支持多种编程语言,包括Java、Python、Ruby、PHP等,这使得它非常适合对不同语言进行开发的团队。

  5. 可视化:Cloud Studio提供了许多可视化工具,例如图形界面设计器和数据可视化工具,这使得开发过程更加直观和方便。

  6. 安全性:Cloud Studio采用先进的安全技术来保护用户数据和代码,保障了用户的隐私和安全。

个人思考:
cloud studio的git仓库和云端ide 捆绑,类似于github的在线编辑代码,
不过cloud studio的功能更加丰富,多了绑定服务器和流水线构建等等。
对于未来的开发趋势,个人总结以下4点:

  1. 远程租用算力,降低硬件要求,降低企业办公成本
  2. 开发效率提升,开发部署一站式,数据驱动
  3. 开发人员门槛降低,快速入门
  4. 底层逻辑被封装,开发人员能力参差不齐

⭐结束

本文分享到这结束,如有错误或者不足之处欢迎指出!
scene

👍 点赞,是我创作的动力!
⭐️ 收藏,是我努力的方向!
✏️ 评论,是我进步的财富!
💖 感谢你的阅读!

相关文章:

CloudStudio搭建Next框架博客_抛开电脑性能在云端编程(沉浸式体验)

文章目录 ⭐前言⭐进入cloud studio工作区指引&#x1f496; 注册coding账号&#x1f496; 选择cloud studio&#x1f496; cloud studio选择next.js&#x1f496; 安装react的ui框架&#xff08;tDesign&#xff09;&#x1f496; 安装axios&#x1f496; 代理请求跨域&#x…...

【FPGA IP系列】FIFO深度计算详解

FIFO(First In First Out)是一种先进先出的存储结构&#xff0c;经常被用来在FPGA设计中进行数据缓存或者匹配传输速率。 FIFO的一个关键参数是其深度&#xff0c;也就是FIFO能够存储的数据条数&#xff0c;深度设计的合理&#xff0c;可以防止数据溢出&#xff0c;也可以节省…...

JavaScript中语句和表达式

在JavaScript编程中&#xff0c;Statements和Expressions都是代码的构建块&#xff0c;但它们有不同的特点和用途。 ● Statements&#xff08;语句&#xff09;是执行某些操作的完整命令&#xff1b;每个语句通常以分号结束。例如&#xff0c;if语句、for语句、switch语句、函…...

打卡力扣题目十

#左耳听风 ARST 打卡活动重启# 目录 一、题目 二、解决方法一 三、解决方法二 关于 ARTS 的释义 —— 每周完成一个 ARTS&#xff1a; ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Shar…...

UniApp实现API接口封装与请求方法的设计与开发方法

UniApp实现API接口封装与请求方法的设计与开发方法 导语&#xff1a;UniApp是一个基于Vue.js的跨平台开发框架&#xff0c;可以同时开发iOS、Android和H5应用。在UniApp中&#xff0c;实现API接口封装与请求方法的设计与开发是一个十分重要的部分。本文将介绍如何使用UniApp实…...

利用小波分解信号,再重构

function [ output_args ] example4_5( input_args ) %EXAMPLE4_5 Summary of this function goes here % Detailed explanation goes here clc; clear; load leleccum; s leleccum(1:3920); % 进行3层小波分解&#xff0c;小波基函数为db2 [c,l] wavedec(s,3,db2); %进行…...

QT数据库编程

ui界面 mainwindow.cpp #include "mainwindow.h" #include "ui_mainwindow.h" #include <QButtonGroup> #include <QFileDialog> #include <QMessageBox> MainWindow::MainWindow(QWidget* parent): QMainWindow(parent), ui(new Ui::M…...

基于stm32单片机的直流电机速度控制——LZW

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 一、实验目的二、实验方法三、实验设计1.实验器材2.电路连接3.软件设计&#xff08;1&#xff09;实验变量&#xff08;2&#xff09;功能模块a&#xff09;电机接收信号…...

实际项目中使用mockjs模拟数据

项目中的痛点 自己模拟的数据对代码的侵入程度太高&#xff0c;接口完成后要删掉对应的代码&#xff0c;导致接口开发完后端同事开发完&#xff0c;前端自己得加班&#xff1b;接口联调的时间有可能会延期&#xff0c;接口完成的质量参差不齐&#xff1b;对于数据量过大的模拟…...

【家庭公网IPv6】

家庭公网IPv6 这里有两个网站&#xff1a; 1、 IPV6版、多地Tcping、禁Ping版、tcp协议、tcping、端口延迟测试&#xff0c;在本机搭建好服务器后&#xff0c;可以用这个测试外网是否可以访问本机&#xff1b; 2、 IP查询ipw.cn&#xff0c;这个可以查询本机的网络是否IPv6访问…...

【iOS】Frame与Bounds的区别详解

iOS的坐标系 iOS特有的坐标是&#xff0c;是在iOS坐标系的左上角为坐标原点&#xff0c;往右为X正方向&#xff0c;向下为Y正方向。 bounds和frame都是属于CGRect类型的结构体&#xff0c;系统的定义如下&#xff0c;包含一个CGPoint&#xff08;起点&#xff09;和一个CGSiz…...

SpringBoot百货超市商城系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBoot框架开发的百货超市系统。首先&#xff0c;这是一个很适合SpringBoot初学者学习的项目&#xff0c;代…...

【实践篇】推荐算法PaaS化探索与实践 | 京东云技术团队

作者&#xff1a;京东零售 崔宁 1. 背景说明 目前&#xff0c;推荐算法部支持了主站、企业业务、全渠道等20业务线的900推荐场景&#xff0c;通过梳理大促运营、各垂直业务线推荐场景的共性需求&#xff0c;对现有推荐算法能力进行沉淀和积累&#xff0c;并通过算法PaaS化打造…...

持续贡献开源力量,棱镜七彩加入openKylin

近日&#xff0c;棱镜七彩签署 openKylin 社区 CLA&#xff08;Contributor License Agreement 贡献者许可协议&#xff09;&#xff0c;正式加入openKylin 开源社区。 棱镜七彩成立于2016年&#xff0c;是一家专注于开源安全、软件供应链安全的创新型科技企业。自成立以来&…...

Kafka的消费者如何管理偏移量?

在Kafka中&#xff0c;消费者可以通过管理和跟踪偏移量&#xff08;offset&#xff09;来确保消费者在消费消息时的准确性和可靠性。偏移量表示消费者在特定分区中已经消费的消息的位置。以下是几种常见的偏移量管理方式&#xff1a; 手动提交偏移量&#xff1a;消费者可以通过…...

IntelliJ IDEA流行的构建工具——Gradle

IntelliJ IDEA&#xff0c;是java编程语言开发的集成环境。IntelliJ在业界被公认为最好的java开发工具&#xff0c;尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。 如…...

nacos源码打包及相关配置

nacos 本地下载后&#xff0c;需要 install 下&#xff1a; mvn clean install -Dmaven.test.skiptrue -Dcheckstyle.skiptrue -Dpmd.skiptrue -Drat.skiptruenacos源码修改后&#xff0c;重新打包生成压缩包命令&#xff1a;在 distribution 目录中运行&#xff1a; mvn -Pr…...

【机器学习】Multiple Variable Linear Regression

Multiple Variable Linear Regression 1、问题描述1.1 包含样例的X矩阵1.2 参数向量 w, b 2、多变量的模型预测2.1 逐元素进行预测2.2 向量点积进行预测 3、多变量线性回归模型计算损失4、多变量线性回归模型梯度下降4.1 计算梯度4.2梯度下降 首先&#xff0c;导入所需的库 im…...

自己创建的类,其他类中使用错误

说明&#xff1a;自己创建的类&#xff0c;在其他类中创建&#xff0c;报下面的错误&#xff08;Cannot resolve sysmbol ‘Redishandler’&#xff09;&#xff1b; 解决&#xff1a;看下是不是漏掉了包名 加上包名&#xff0c;问题解决&#xff1b;...

Packet Tracer – 使用 TFTP 服务器升级思科 IOS 映像。

Packet Tracer – 使用 TFTP 服务器升级思科 IOS 映像。 地址分配表 设备 接口 IP 地址 子网掩码 默认网关 R1 F0/0 192.168.2.1 255.255.255.0 不适用 R2 G0/0 192.168.2.2 255.255.255.0 不适用 S1 VLAN 1 192.168.2.3 255.255.255.0 192.168.2.1 TFTP …...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

五年级数学知识边界总结思考-下册

目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解&#xff1a;由来、作用与意义**一、知识点核心内容****二、知识点的由来&#xff1a;从生活实践到数学抽象****三、知识的作用&#xff1a;解决实际问题的工具****四、学习的意义&#xff1a;培养核心素养…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量&#xff0c;这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...

探索Selenium:自动化测试的神奇钥匙

目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...

npm安装electron下载太慢,导致报错

npm安装electron下载太慢&#xff0c;导致报错 背景 想学习electron框架做个桌面应用&#xff0c;卡在了安装依赖&#xff08;无语了&#xff09;。。。一开始以为node版本或者npm版本太低问题&#xff0c;调整版本后还是报错。偶尔执行install命令后&#xff0c;可以开始下载…...

【前端实战】如何让用户回到上次阅读的位置?

目录 【前端实战】如何让用户回到上次阅读的位置&#xff1f; 一、总体思路 1、核心目标 2、涉及到的技术 二、实现方案详解 1、基础方法&#xff1a;监听滚动&#xff0c;记录 scrollTop&#xff08;不推荐&#xff09; 2、Intersection Observer 插入探针元素 3、基…...

触发DMA传输错误中断问题排查

在STM32项目中&#xff0c;集成BLE模块后触发DMA传输错误中断&#xff08;DMA2_Stream1_IRQHandler进入错误流程&#xff09;&#xff0c;但单独运行BLE模块时正常&#xff0c;表明问题可能源于原有线程与BLE模块的交互冲突。以下是逐步排查与解决方案&#xff1a; 一、问题根源…...