文章目录

  • 前言
  • IDE 解放开发者的生产力
  • 功能强大的 IDE
  • 快速搭建 Vue 开发环境
    • 注册 Cloud Studio
    • 进入Vue预置开发环境
    • 安装相关依赖包
    • 主文件 main.js 引入相关库和包
    • 首页增加移动端默认样式
    • 增加主要代码
  • IDE 的适用场景
  • 总结

前言

云计算技术的不断发展为代码开发带来了全新的体验,云 IDE(Integrated Development Environment)应运而生。腾讯云还与 CODING 联合推出的一站式云 IDE——Cloud Studio。我们将探讨云 IDE 的优势、特点以及体验,同时使用 Cloud Studio 快速搭建一个移动端 H5 页面,深入感受云 IDE 给我们带来的便利。

IDE 解放开发者的生产力

随着云计算技术的快速发展,无服务器计算成为一种热门趋势。腾讯云的 Cloud Studio 正是基于无服务器计算,通过统一管理后端服务及资源,避免了开发过程中繁琐的集群搭建和系统运维工作。云 IDE 让开发者从繁重的环境搭建中解脱出来,实现 Coding Anytime Anywhere 的理念。

与传统的本地 IDE 不同,Cloud Studio 是基于浏览器的集成式开发环境。用户无需安装任何软件,只需打开浏览器,即可随时随地进行代码开发。这一特点在异地办公等场景下尤为突出,开发者只需拥有一台联网的设备,即可快速投入工作,无需考虑不同开发环境和版本之间的冲突。

功能强大的 IDE

在本次 Demo 演示中,我们将使用 Cloud Studio 搭建一个移动端 H5 页面,选用了 Vue3 作为开发框架。Cloud Studio 提供了丰富的功能,让开发者在云端获得与传统本地 IDE 相媲美的开发体验。代码高亮、自动补全、Git 集成、终端等是 Cloud Studio 基础功能,让我们可以高效地编写代码和版本控制。

而更为令人振奋的是,Cloud Studio 支持实时调试和插件扩展,这为开发者提供了更加便捷和灵活的开发环境。我们可以轻松调试代码,快速定位问题,并且根据需要安装扩展插件,进一步提升开发效率。使用 GitHub 授权注册后,我们直接进入首页,选择 Vue.js 模板,Cloud Studio 会帮助我们初始化好开发 Vue 环境,并且默认有一个小 Demo,让我们可以迅速开始开发,不用花费时间在繁琐的环境搭建上。

总体而言,Cloud Studio 的功能强大且易用,为开发者提供了一站式的云端开发利器。

下面我们来看看如何使用腾讯云 Cloud Studio 快速搭建一个移动端系统。

快速搭建 Vue 开发环境

使用 Cloud Studio 快速搭建 Vue 预置开发环境

注册 Cloud Studio

官网地址

这里注册和登录 Cloud Studio 非常方便,提供了三种注册方式:

  • 使用 CODING 账号注册
  • 使用微信授权注册
  • 使用 GitHub 授权注册(本文使用方式)

使用 GitHub 授权注册,点击授权即可进入首页,如下空间模板开箱即用,可以快速搭建环境进行代码开发,同时 Cloud Studio 也对所有新老用户每月赠送 3000 分钟的工作空间免费时长。

Cloud Studio 控制台中罗列了常见的集成开发环境,支持了 40+ 的多种模板(框架模板、云原生模板、建站模板),单击所需模板卡片即可进入对应环境中,也可以选择新建工作空间中的云服务器模式,连接云服务器进行开发环境搭建。

进入Vue预置开发环境

因为本文主旨是利用云 IDE Cloud Studio 快速搭建还原一个移动端系统,所以,这里我们选择使用 Vue 模板来实现功能。点击 Vue.js 模板卡片,进入集成环境加载页面,加载成功后即可进入开发环境进行编程。

在进入Vue预置开发环境后,我们发现 Cloud Studio 已经为我们初始化好了 Vue 开发环境,并且还提供了一个小 Demo 供我们参考。在加载页面后,系统相关配置信息清晰展示:

  • 当前目录为 /workspace
  • 当前 Node 版本为 v16.17.0,Npm 版本为 8.18.0
  • 环境默认不支持 docker
  • 还有近2G多的内存是空闲

这些信息表明,Cloud Studio 为开发者提供了稳定、高效的开发环境,同时具有足够的计算资源支持开发工作。

安装相关依赖包

为了快速开发,一般我们会采用一些 UI 库,比如移动端我们经常会选择 Vant,在 css 这块,我们也一般会使用 SCSS 和 LESS 这些 CSS 预处理语言,本实验中我们选择 Less。

(1). 安装 Vant:

yarn add vant@^3.6.2

(2). 按需引入组件样式:

在基于 vite、webpack 或 vue-cli 的项目中使用 Vant 时,可以使用 unplugin-vue-components 插件,它可以自动引入组件,并按需引入组件的样式。

相比于常规用法,这种方式可以按需引入组件的 CSS 样式,从而减少一部分代码体积,但使用起来会变得繁琐一些。如果业务对 CSS 的体积要求不是特别极致,我们推荐使用更简便的常规用法。

yarn add -D unplugin-vue-components@^0.22.7

本实验是基于 vue-cli 的项目,所以,在根目录下,vue.config.js 文件中配置插件。

// 引入以下2个库
const { VantResolver } = require('unplugin-vue-components/resolvers');
const ComponentsPlugin = require('unplugin-vue-components/webpack');module.exports = {devServer: {disableHostCheck: true},// 增加以下配置configureWebpack: {plugins: [ComponentsPlugin({resolvers: [VantResolver()],}),],},
};

完成以上安装和修改配置文件两步,就可以直接在模板中使用 Vant 组件了,unplugin-vue-components 会解析模板并自动注册对应的组件。

(3). 安装 Less:

yarn add -D less@^3.12.2
yarn add -D less-loader@^7.0.1

在根目录下,vue.config.js 文件中配置 less 配置。

const { VantResolver } = require('unplugin-vue-components/resolvers');
const ComponentsPlugin = require('unplugin-vue-components/webpack');module.exports = {devServer: {disableHostCheck: true},configureWebpack: {plugins: [ComponentsPlugin({resolvers: [VantResolver()],}),],},// 增加 less 配置css: {loaderOptions: {less: {lessOptions: {// 在这里添加自定义的 Less 配置},},},},
};

(4). 安装 normalize:

Normalize.css 是 CSS 重置的现代替代方案,可以为默认的 HTML 元素样式上提供了跨浏览器的高度一致性。相比于传统的 CSS reset,Normalize.css 是一种现代的、为 HTML5 准备的优质替代方案。

yarn add -D normalize.css@^8.0.1

主文件 main.js 引入相关库和包

上面我们安装了开发中常用的一些包和库,安装完后,需要在主文件 main.js 进行引入使用。

在 src/main.js 文件中引入包和库。

import { createApp } from 'vue'
import App from './App.vue'
// 按需引入 Vant
import { Tabbar, TabbarItem } from 'vant';
import 'vant/es/toast/style'
// CSS 重置的现代替代方案
import 'normalize.css/normalize.css'// 实例化 Vue 实例
const app = createApp(App)// 安装 Vant 相关使用插件
app.use(Tabbar);
app.use(TabbarItem);// 挂载到 #app 节点
app.mount('#app')

首页增加移动端默认样式

在 src/public/index.html 文件中,添加以下 script 代码可以使用 Rem 编写代码,另外对安卓和 iOS 机型有一些默认的处理。

<!DOCTYPE html>
<html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link rel="icon" href="<%= BASE_URL %>favicon.ico"><title><%= htmlWebpackPlugin.options.title %></title></head><body><noscript><strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><!-- built files will be auto injected --><script>// rem定义/*720代表设计师给的设计稿的宽度,你的设计稿是多少,就写多少;100代表换算比例*/getRem(375, 100);window.onresize = function() {getRem(375, 100);};function getRem(pwidth, prem) {var html = document.getElementsByTagName("html")[0];var oWidth =document.documentElement.clientWidth || document.body.clientWidth;html.style.fontSize = (oWidth / pwidth) * prem + "px";}// 安卓机中,默认字体大小不让用户修改;(function () {if (typeof WeixinJSBridge == 'object' && typeof WeixinJSBridge.invoke == 'function') {handleFontSize()} else {if (document.addEventListener) {document.addEventListener('WeixinJSBridgeReady', handleFontSize, false)} else if (document.attachEvent) {document.attachEvent('WeixinJSBridgeReady', handleFontSize)document.attachEvent('onWeixinJSBridgeReady', handleFontSize)}}function handleFontSize() {// 设置网页字体为默认大小WeixinJSBridge.invoke('setFontSizeCallback', {fontSize: 0,})// 重写设置网页字体大小的事件WeixinJSBridge.on('menu:setfont', function () {WeixinJSBridge.invoke('setFontSizeCallback', {fontSize: 0,})})}})()</script></body>
</html>

增加主要代码

在 src/App.vue 中复制以下为主要的业务代码:

<template><div class="container"><van-nav-bartitle="e租宝案"left-arrow/><div class="list_box"><div class="list"><div class="list-head">开庭前准备 5</div><div class="list_item"><div class="list_item-head"><van-checkbox v-model="radio" shape="square">核对证据原件并存档</van-checkbox><div class="list_item-head_name"><div class="list_item-head_name-tag"></div><div class="list_item-head_name-text">e租宝案</div></div></div><div class="list_item-info"><img class="list_item-info_img" style="display: block;" src="https://cs-res.codehub.cn/workspace/assets/icons/emberjs.svg" lazy-load alt="" /><div class="list_item-info_tag list_item-info_tag--gray">03-28 截止</div><img class="list_item-info_clock" style="display: block;" src="https://cs-res.codehub.cn/vscode/serverless.svg" lazy-load alt="" /></div></div><div class="list_item list_item--blue"><div class="list_item-head"><van-checkbox v-model="radio1" shape="square">调取并查阅案卷</van-checkbox><div class="list_item-head_name"><div class="list_item-head_name-tag"></div><div class="list_item-head_name-text">e租宝案</div></div></div><div class="list_item-info"><img class="list_item-info_img" style="display: block;" src="https://cs-res.codehub.cn/workspace/assets/icons/emberjs.svg" lazy-load alt="" /><div class="list_item-info_tag list_item-info_tag--blue">下周一 截止</div><img class="list_item-info_clock" style="display: block;" src="https://cs-res.codehub.cn/vscode/serverless.svg" lazy-load alt="" /></div></div><div class="list_item list_item--orange"><div class="list_item-head"><van-checkbox v-model="radio2" shape="square">领取传票并通知委托人</van-checkbox><div class="list_item-head_name"><div class="list_item-head_name-tag"></div><div class="list_item-head_name-text">e租宝案</div></div></div><div class="list_item-info"><img class="list_item-info_img" style="display: block;" src="https://cs-res.codehub.cn/workspace/assets/icons/emberjs.svg" lazy-load alt="" /><div class="list_item-info_tag list_item-info_tag--orange">明天 17:00 截止</div><img class="list_item-info_clock" style="display: block;" src="https://cs-res.codehub.cn/vscode/serverless.svg" lazy-load alt="" /></div></div><div class="list_item list_item--red"><div class="list_item-head"><van-checkbox v-model="radio3" shape="square">写委托书</van-checkbox><div class="list_item-head_name"><div class="list_item-head_name-tag"></div><div class="list_item-head_name-text">e租宝案</div></div></div><div class="list_item-info"><img class="list_item-info_img" style="display: block;" src="https://cs-res.codehub.cn/workspace/assets/icons/emberjs.svg" lazy-load alt="" /><div class="list_item-info_tag list_item-info_tag--red">2019-2-12 截止</div><img class="list_item-info_clock" style="display: block;" src="https://cs-res.codehub.cn/vscode/serverless.svg" lazy-load alt="" /></div></div></div></div><van-tabbar v-model="active"><van-tabbar-item icon="comment-o">名片夹</van-tabbar-item><van-tabbar-item icon="shop-o">官网</van-tabbar-item><van-tabbar-item icon="user-o">我的</van-tabbar-item></van-tabbar></div>
</template><script>
export default {name: 'App',data() {return {active: 0,radio: false,radio1: false,radio2: false,radio3: false,};},
};
</script><style lang="less">
html,
body {// font-family: PingFangSC-Medium, PingFang SC, Arial, 'Microsoft Yahei', sans-serif;font-family: Arial, 'Microsoft Yahei', sans-serif;font-size: 0.14rem;// line-height: 0.24rem;color: #333;background: #f9f9f9;// iPhone 横屏默认会放大文字,设置text-size-adjust会解决这个问题-webkit-text-size-adjust: 100% !important;-moz-text-size-adjust: 100% !important;text-size-adjust: 100% !important;
}* {outline-style: none !important;
}
</style><style lang="less" scoped>
.container {position: relative;min-height: 100vh;padding-bottom: 0.5rem;background: #fff;
}.list_box {padding: 0.2rem 0.1rem;box-sizing: border-box;.list {padding: 0.1rem 0.1rem 0.3rem;box-sizing: border-box;background: #f4f4f4;width: 100%;border-radius: 3px;&-head {padding: 16px 15px 12px 0;box-sizing: border-box;font-size: 0.16rem;}}
}.list_item {background: #fff;padding: 0.1rem;box-sizing: border-box;border-radius: 3px;margin-bottom: 0.1rem;&--gray {background: #cccccc;}&--blue {border-left: 2px solid #75A8F7;}&--orange {border-left: 2px solid #E8A743;}&--red {border-left: 2px solid #E8311F;}&-head {display: flex;align-items: center;justify-content: space-between;&_name {display: flex;align-items: center;&-tag {width: 6px;height: 6px;background: #5F8DD8;border-radius: 50%;margin-right: 0.05rem;}&-text {font-size: 0.12rem;color: #989A9C;}}}&-info {padding-top: 8px;padding-left: 25px;display: flex;align-items: center;&_img {width: 20px;height: 20px;margin-right: 10px;}&_tag {padding: 0 5px;box-sizing: border-box;height: 18px;line-height: 18px;background: #989A9C;border-radius: 3px;margin-right: 10px;color: #fff;font-size: 0.1rem;&--gray {background: #cccccc;}&--blue {background: #75A8F7;}&--orange {background: #E8A743;}&--red {background: #E8311F;}}&_clock {width: 10px;height: 10px;}}
}
</style>

Cloud Studio 内置预览插件,可以实时显示网页应用,当代码发生改变之后,预览窗口会自动刷新,即可在 Cloud Studio 内实时开发调试网页了,还提供了二维码在手机端进行调试。

因为本项目是移动端 H5 的项目,所以需要打开“toggle device”按钮查看样式。

复制内置 Chrome 浏览器窗口的地址栏,分享给团队的其它成员,免去了部署 nginx 的繁琐配置。

IDE 的适用场景

在本次,我们深感云 IDE 的便捷与高效。云 IDE 尤其适用于以下场景:

  • 学习与测试:对于初学者或者需要快速测试代码的开发者来说,云 IDE 提供了简单、直接的开发环境,无需担心本地环境配置和版本问题。
  • 临时开发需求:当需要快速完成一些开发功能,或者进行临时性的编码任务时,云 IDE 可以大幅提高开发效率。
  • 团队协作:云 IDE 的云端存储和协作功能使得多人在同一项目上的协作变得简单高效。

然而,云 IDE 也有一些潜在的局限性。对于一些大型项目或需要复杂环境配置的应用,本对于一些大型项目或需要复杂环境配置的应用,云 IDE 可能不太适用。由于云 IDE 是基于浏览器的,对于大规模代码库的处理可能会受到一定的限制,导致编辑和编译的速度较慢。此外,对于某些特殊需求和定制化环境,本地 IDE 可能提供更灵活的配置选项和更多的插件支持。

尽管如此,云 IDE 的优势在于它的便捷性和无需配置的特点,这为很多开发者提供了更轻松的开发体验。特别是对于初学者和需要快速开发的开发者,云 IDE 提供了一个低门槛、高效率的解决方案。

总结

腾讯云 Cloud Studio 作为一站式云 IDE 平台,为开发者提供了稳定、高效的开发环境,让开发者能够随时随地进行代码开发。其无需配置和无服务器计算的特点,解放了开发者的生产力,让他们能够专注于编程本身而不必担心繁琐的环境搭建和维护工作。

在本次演示中,我们成功使用 Cloud Studio 快速搭建了一个移动端系统,并深切感受到了云 IDE 带来的便利和高效。然而,我们也看到了云 IDE 的一些局限性,特别是对于大规模代码库和定制化环境的适应性相对较差。

综合来看,腾讯云 Cloud Studio 作为一款云 IDE 平台,在学习、测试和临时开发需求等场景下表现突出,为开发者提供了一个方便、高效的开发利器。但在面对一些复杂项目和特殊需求时,开发者可能仍然需要依赖本地 IDE 来满足更灵活的配置和更多的插件支持。

无论如何,云 IDE 的出现无疑为开发者带来了全新的体验,让编程更加便捷和高效。对于开发者而言,选择合适的 IDE 工具,结合云端和本地的优势,将有助于提升开发效率,从而更好地应对各种项目和需求的挑战。

【腾讯云 Cloud Studio 实战训练营】体验搭建软件系统,无经验也能做开发相关推荐

  1. 【腾讯云 Cloud Studio 实战训练营】永不宕机的IDE,Coding Everywhere

    [腾讯云 Cloud Studio 实战训练营]永不宕机的IDE,随时随地写代码! 写在最前 视频讲解: Cloud Studio活动简介 何为腾讯云 Cloud Studio? Cloud Stud ...

  2. [腾讯云 Cloud Studio 实战训练营]Claude+Cloud Studio辅助编程搭建Excel工资核算

    目录 前言 一.实验准备 1.1 Cloud Studio介绍 1.2 GPT工具 Claude 介绍 1.背景介绍 2.接入方式 三.工资核算的实验案例介绍 规则如下 1.迟到次数核算方法: 2.个 ...

  3. 【腾讯云 Cloud studio 实战训练营】真正做到让你的开发成本只在编码

    文章目录 写在前面 CODING Cloud studio工具 在线编码 运行项目 代码上传 Cloud Studio 开发贪吃蛇 写在最后 写在前面 期待已久的体验活动终于来了,Clound Stu ...

  4. 【腾讯云 Cloud Studio 实战训练营】使用Cloud Studio制作蛋仔派对兑换码工具

    目录

  5. 腾讯云Cloud Studio:基于Claude快速完成Excel工资自动核算

    目录 1 什么是Cloud Studio? 2 注册与代码管理 2.1 账号注册 2.2 Git关联 3 实战:Excel工资自动核算 3.1 创建项目与配置 3.2 "念咒师"C ...

  6. 免费课程 | 云脑机器学习实战训练营,中美大咖携手带你飞!

    随着机器学习的不断发展,人工智能掀起了新一轮的热潮.这次人工智能的复兴,最大的特点就是AI能够走入业界的真实应用场景,与商业模式紧密结合,开始在产业界发挥出真正的价值. 在业界的真实应用中,如何挖掘用 ...

  7. 【新知实验室】——腾讯云TRTC实时音视频体验

    [新知实验室]--腾讯云TRTC实时音视频体验 前言 一.腾讯实时音视频TRTC是什么? 二.DEMO体验 1.注册腾讯云账号 2.使用实时音视频(需先开通) 3.查看项目(查看密钥和快速上手操作) ...

  8. 【新知实验室】腾讯云TRTC实时音视频体验

    新知实验室  腾讯云TRTC实时音视频体验 在我们的日常生活中,音视频通话.直播及视频会议等诸多音视频场景已经很常见,腾讯发布的 实时音视频(Tencent RTC) 产品,基于腾讯多年来在网络与音视 ...

  9. 腾讯云在线WebShell终端使用体验

    前言 WebShell最近更新的很快,之前都是每更新一次就新开一篇文章并引用前一篇文章的链接,后面考虑到更新如此频繁影响到小伙伴们的阅读体验,故开一篇新的合集,此后每次更新都会在这里修改并打上修改日期 ...

最新文章

  1. 如何从字符串中删除最后一个字符?
  2. Android各个文件夹对应的分辨率?
  3. OpenGL画矩形,三角形,点(第一个图形学的小程序)
  4. js 加入debug后可以进入controller_新手入门Nest.js(四) 控制器路由
  5. Python机器学习---何为机器学习?
  6. Vue学习笔记(3)(Vue CLI)
  7. 玩具(BZOJ-1307)
  8. (36)System Verilog线程并行执行(fork-join)
  9. Linux下的文件I/O编程
  10. php 运行thinkphp,thinkPHP cli命令行运行PHP代码
  11. 用java编写录音机类_java实现录音机
  12. SVN遗漏so文件的解决办法
  13. 【项目实战——emos在线办公系统】:会议申请、请假申请等部分代码理解
  14. 【架构】1304- 如何画出一张优秀的架构图
  15. 发票专用驱动sjz_收藏!增值税发票(发票勾选)选择确认平台使用手册
  16. Win10系统台式机如何调节系统亮度
  17. matlab工序,Matlab学习日志——基于遗传算法的车间调度
  18. 短信包对比 - 2021.5
  19. java学了之后老忘_老程序员的建议,零基础学java,常见的误区和解决方法
  20. LPL2020夏季常规赛7月22日RW vs ES,WE vs BLG前瞻预测

热门文章

  1. linux救援模式如何挂载原系统,LINUX救援模式使用一例
  2. 如何参与开源社区_我的世界如何让我参与开源社区
  3. k70学习笔记(2. xxx)
  4. 史上最全的渗透测试面试题,都是干货。
  5. 每日一个小技巧:1分钟告诉你广告配音语音制作软件哪个好
  6. 用C++绘制的一朵逼真的玫瑰花
  7. 微信小程序-MAP API组件 合集
  8. R语言与函数估计学习笔记(函数模型的参数估计)
  9. Unity3D命令手册2
  10. 【论文实现】一篇Sigkdd的弹幕分析论文的python实现【LDA 实践者】