【腾讯云Cloud Studio实战训练营】使用Cloud Studio社区版快速构建React完成点餐H5页面还原

news2025/3/10 11:02:48
陈老老老板🦸
👨‍💻本文专栏:生活(主要讲一下自己生活相关的内容)
👨‍💻本文简述:生活就像海洋,只有意志坚强的人,才能到达彼岸。
👨‍💻上一篇文章: 年度总结-你觉得什么叫生活?
👨‍💻有任何问题,都可以私聊我,在文章最后也可以加我的wx。感谢支持!
🦹我认为人人都可以学好编程,我愿意成为你的领路人!

在这里插入图片描述

文章目录🤴

  • 一、前言👵
  • 二、腾讯云`Cloud Studio`到底是什么🤴
    • 1.业务角度
    • 2.功能角度
  • 三、腾讯云`Cloud Studio`出现的背景是什么🦸‍♂️
    • 1.从本地向“云”
    • 2.`Cloud Studio`真正的优势
  • 四、快速构建React完成点餐H5页面还原实操💇‍♂️
    • 1.进行注册并创建应用
    • 2.安装 `antd-mobile`
    • 3.安装 `Less`与 `less-loader`
    • 4.暴露 `webpack` 配置文件
    • 5.更改config目录中增加less样式
    • 6.安装 normalize
    • 7.上传项目需要的素材
    • 8.替换App.js主文件
    • 9.运行测试
    • 10.上传代码仓库
  • 五.总结

一、前言👵

最近在公司中时常和一些大佬在讨论一些在线编程工具这个事情,也是亲自尝试了很多的产品,也很幸运的参加了腾讯云Cloud Studio实战训练营,也是蛮有缘分的,既然有缘那就细致的给大家讲讲我的使用感受与实操示例。一句话来说就是:小母牛坐飞机–牛逼上天了!!! 依然是老三套结构:是什么、为什么、怎么做、来讲讲!
在这里插入图片描述

二、腾讯云Cloud Studio到底是什么🤴

1.业务角度

说明:简单的理解,腾讯云Cloud Studio就是一个线上编程工具,哇塞!是不是很牛,再也不用为配置不明白而烦恼了,再也不用因为插件版本而烦恼了,会让你觉得开发Very Easy!!

  • Cloud Studio 是基于浏览器的集成式开发环境(IDE),为开发者提供了一个永不间断的云端工作站。用户在使用 Cloud Studio 时无需安装,随时随地打开浏览器就能在线编程。

  • Cloud Studio作为在线 IDE,包含代码高亮、自动补全、Git 集成、终端等 IDE 的基础功能,同时支持实时调试、插件扩展等,可以帮助开发者快速完成各种应用的开发、编译与部署工作。

2.功能角度

说明:明白是线上编程工具就可以知道,你本地弄得环境都已经为你准备好,你想的到的它都能做到,一句话你想要的他都有,东西实在是太多了。

  • 快速启动项目:使用Cloud Studio的预置环境,您可以直接创建对应类型的工作空间,快速启动项目进入开发状态,无需进行繁琐的环境配置。

  • 实时调试网页:Cloud Studio 内置预览插件,可以实时显示网页应用。当您的代码发生改变之后,预览窗口会自动刷新,这样您就可以在 Cloud Studio 内实时开发调试网页了。

  • 远程访问云服务器:Cloud Studio 支持您连接自己的云服务器,这样就可以在编辑器中查看云服务器上的文件,进行在线编程和部署工作。

三、腾讯云Cloud Studio出现的背景是什么🦸‍♂️

说明:很喜欢Cloud Studio的标题:云端开发 化繁为简,他们也确实做到了,真的把需要开发所做的一切准备工作都集中在网页上,你要做的就是选择哪个环境,简直爱不释手!

1.从本地向“云”

说明:可能很多小伙伴不太明白为什么现在很多东西都是再往“云”上发展,上云代表不再会有本地资源的束缚,无论什么时间、地点,只要有网就可以干你想干的事情。

云技术的不断发展,上“云”将会大大降低成本,减少硬件设备的采购,而且更加稳定不会出现断电等情况,而且整体的效率更高,不再是最开始的单一在同一办公地点的办公方式,可以采用进行同时的线上编程方式,一个新的电脑不用配置一样可以编程,简直不要太爽。无拘无束,再也不用因为电脑配置不行而不能写代码而发愁了。

2.Cloud Studio真正的优势

  • 1.云端开发环境:一键秒开、全持久化、预置环境及内置开发工具,跨团队无缝复制和共享,让开发化繁为简。
  • 2.支持多编程语言:包括C、C++、C# 、Java、JavaScript、Python、Go、Rust 等几乎全平台的主流开发语言。
  • 3.支持多端开发:可以支持前端、后端、移动端开发。
  • 4.支持AI代码助手:可以在线编程 · 辅助开发,使用 AI 代码助手在 Cloud Studio 中编写代码。代码自动补全、代码纠错、代码AI评审、单元测试生成功能等。
  • 5.支持协作开发:可以组建自己的团队实现实时开发。
  • 6.支持DeployKit云部署:支持多种框架一键部署至云函数,同时支持自定义部署。 便于帮助开发者快速部署项目到多家云厂商函数服务,让开发者专注于代码逻辑的实现。

在这里插入图片描述

四、快速构建React完成点餐H5页面还原实操💇‍♂️

1.进行注册并创建应用

说明: 可以使用微信直接进行创建哦!,点击右上角进行创建应用,选择React框架,一键部署环境,超级快。现在终端输入以下命令尝试创建一个新主机,在Ctrl + z就可以退出:

// 进入当前目录
cd ./ && 
// 设置port的环境变量
set port=3000 &&
// 导出port的环境变量
export PORT=3000 &&
// 相当于 yarn install,安装相关依赖
yarn &&
// 启动开发环境
yarn start --port=3000

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.安装 antd-mobile

说明: 是由蚂蚁金融团队推出的一个开源的react组件库,antd-mobile 支持基于 Tree Shaking 的按需加载。安装完查看package.json 查看 antd-mobile是否安装成功,成功可以会如图片所示。

注:版本要对5.32.0

安装命令:

$ yarn add antd-mobile@^5.32.0
# or
$ npm install --save antd-mobile@^5.32.0

实操演示:

在这里插入图片描述

3.安装 Lessless-loader

说明:Less相信一些前端开发的小伙伴来说必不可少的组件,这里先下载Less做开发准备。依然是查看package.json 看其中的devDependencies是否安装成功。

注:版本要对3.12.2 与7.0.1

安装命令:

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

实操演示:在这里插入图片描述

4.暴露 webpack 配置文件

安装命令:

npm run eject

实操演示:输入完要注意需要再次输入y,进行下一步
在这里插入图片描述

注:发现报错,因为我们使用脚手架创建一个项目的时候,自动给我们增加了一个.gitignore文件,解决方案:我们本地却没有文件仓库,这就需要在终端输入如下命令,用git将项目添加到我们的本地仓库。

安装命令:

#先创建git
git config --global user.email "chenlaoban@qq.com" 
git config --global user.name "clb"
#在进行提交代码
gitadd .
git commit -m 'up'
#再执行
npm run eject  

在这里插入图片描述
执行完命令就会发现安装成功
在这里插入图片描述

5.更改config目录中增加less样式

说明:这里需要增加一些less样式

(1) config/webpack.config.js 文件,找到第69行,这块是设置 css 相关的代码。
在这里插入图片描述
将这部分更改为:就是新增最下面两行less样式

// style files regexes
const cssRegex = /\.css$/;
const cssModuleRegex = /\.module\.css$/;
const sassRegex = /\.(scss|sass)$/;
const sassModuleRegex = /\.module\.(scss|sass)$/;
// 新增加 Less 代码
const lessRegex = /\.(less)$/;
const lessModuleRegex = /\.module\.(less)$/;

在这里插入图片描述

(2)在509行,看到sass配置,在549行下增加less配置。有可能行号不一样,教大家一个便捷方法 ctrl + f进行搜索extensions .module.scss or .module.sass,就能直接找到了。

// less
{
  test: lessRegex,  // 有改动
  exclude: lessModuleRegex,  // 有改动
  use: getStyleLoaders(
    {
      importLoaders: 3,
      sourceMap: isEnvProduction
        ? shouldUseSourceMap
        : isEnvDevelopment,
    },
    'less-loader'  // 有改动
  ),
  sideEffects: true,
},
{
  test: lessModuleRegex,  // 有改动
  use: getStyleLoaders(
    {
      importLoaders: 3,
      sourceMap: isEnvProduction
        ? shouldUseSourceMap
        : isEnvDevelopment,
      modules: {
        getLocalIdent: getCSSModuleLocalIdent,
      },
    },
    'less-loader'  // 有改动
  ),
},

实操演示:
在这里插入图片描述

6.安装 normalize

说明:Normalize.css 是CSS重置的现代替代方案,可以为默认的HTML元素样式上提供了跨浏览器的高度一致性。相比于传统的CSS resetNormalize.css是一种现代的、为HTML5准备的优质替代方案。安装完也是看package.jsondevDependencies有没有normalize.css

注:版本为8.0.1

安装命令:

yarn add -D normalize.css@^8.0.1

实操演示:
在这里插入图片描述

7.上传项目需要的素材

说明:支持两种上传方式:

  • 直接拖拽
  • 右击 IDE 编辑区域"上传"

实操演示:
在这里插入图片描述

8.替换App.js主文件

说明:只有样式是不行的,还需要主代码的;
(1)替换src/App.js代码

import './App.css';
import React, { useState } from 'react'
import { NavBar, Toast, Swiper, SideBar, TabBar, Badge } from 'antd-mobile'
import {
  AppOutline,
  ExclamationShieldOutline,
  UnorderedListOutline,
  UserOutline,
} from 'antd-mobile-icons'
import BannerImg from './img/banner.png'
import HotImg from './img/hot.png'
import Food1Img from './img/food1.png'
import Food2Img from './img/food2.png'
import CartImg from './img/cart.png'
import './index.less'
import "normalize.css"

function App() {
  const [activeKey, setActiveKey] = useState('1')

  const tabbars = [
    {
      key: 'home',
      title: '点餐',
      icon: <AppOutline />,
    },
    {
      key: 'todo',
      title: '购物车',
      icon: <UnorderedListOutline />,
      badge: '5',
    },
    {
      key: 'sale',
      title: '餐牌预告',
      icon: <ExclamationShieldOutline />,
    },
    {
      key: '我的',
      title: '我的',
      icon: <UserOutline />,
      badge: Badge.dot,
    },
  ]

  const back = () =>
    Toast.show({
      content: '欢迎进入点餐系统',
      duration: 1000,
    })


  const items = ['', '', '', ''].map((color, index) => (
    <Swiper.Item key={index}>
      <img style={{
        width: '100%'
      }} src={ BannerImg }></img>
    </Swiper.Item>
  ))

  const tabs =  [
    { key: '1', title: '热销' },
    { key: '2', title: '套餐' },
    { key: '3', title: '米饭' },
    { key: '4', title: '烧菜' },
    { key: '5', title: '汤' },
    { key: '6', title: '主食' },
    { key: '7', title: '饮料' },
  ]

  const productName = [
    '小炒黄牛肉',
    '芹菜肉丝炒香干',
    '番茄炒鸡蛋',
    '鸡汤',
    '酸菜鱼',
    '水煮肉片',
    '土豆炒肉片',
    '孜然肉片',
    '宫保鸡丁',
    '麻辣豆腐',
    '香椿炒鸡蛋',
    '豆角炒肉'
  ]
  const productList = productName.map((item, key) => {
    return {
      name: item,
      img: key % 2 === 1 ? Food1Img : Food2Img
    }
  })

  return (
    <div className="App">
      <NavBar onBack={back} style={{
        background: '#F0F0F0',
        fontWeight: 'bold'
      }}>点餐</NavBar>

      <div className='head-card'>
        <Swiper
          style={{
            '--border-radius': '8px',
          }}
          autoplay
          defaultIndex={1}
        >
          {items}
        </Swiper>
      </div>

      <div className='product-box'>
        <SideBar activeKey={activeKey} onChange={setActiveKey}>
          {tabs.map(item => (
            <SideBar.Item key={item.key} title={
              item.key === '1' ? <div>
              <div className='flex-center'>
                <img style={{
                  display: 'block',
                  width: '16px',
                  marginRight: '5px'
                }} src={ HotImg }></img>
                <div>{ item.title }</div>
              </div>
            </div> : item.title
            } />
          ))}
        </SideBar>
        <div className='product-right'>
          <div className='product-title'>热销</div>
          <div className='product-list'>
            {
              productList.map((item, key) => {
                return (
                  <div className='product-item'>
                    <div className='product-item-left'>
                      <img style={{
                        display: 'block',
                        width: '76px',
                        marginRight: '5px'
                      }} src={ item.img }></img>
                      <div className='product-item-left-info'>
                        <div>
                          <div className='product-item-left-info-name'>{ item.name }</div>
                          <div className='product-item-left-info-number'>月售{key + 1}0{key * 5}</div>
                        </div>
                        <div className='product-item-left-info-price'>¥10</div>
                      </div>
                    </div>
                    <div className="cart">
                      <img style={{
                        display: 'block',
                        width: '30px',
                        marginRight: '5px'
                      }} src={ CartImg } onClick = { () =>
                        Toast.show({
                          content: '添加购物车成功'
                        }) }></img>
                    </div>
                  </div>
                )
              })
            }
          </div>
        </div>
      </div>

      <TabBar>
        {tabbars.map(item => (
          <TabBar.Item
            key={item.key}
            icon={item.icon}
            title={item.title}
            badge={item.badge}
          />
        ))}
      </TabBar>
    </div>
  );
}

export default App;

实操演示:

在这里插入图片描述

(2)在 src 目录下,创建一个 index.less 文件,将以下 less 相关的代码复制到该文件中。

.head-card {
    padding: 10px 20px;
    box-sizing: border-box;
  }
  
  .flex-center {
    display: flex;
    align-items: center;
  }
  
  .product-box {
    display: flex;
    align-items: center;
    width: 100%;
    height: calc(100vh - 45px - 130px - 50px);
  }
  
  .product-right {
    flex: 1;
    height: 100%;
  }
  
  .product-title {
    font-family: PingFangSC-Regular;
    font-size: 14px;
    color: #000000;
    text-align: left;
    padding-bottom: 10px;
  }
  
  .product-list {
    height: calc(100% - 24px);
    overflow-y: auto;
  }
  
  .product-item {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-left: 10px;
    box-sizing: border-box;
    margin-bottom: 10px;
    &-left {
      display: flex;
      &-info {
        padding-left: 3px;
        box-sizing: border-box;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        &-name {
          font-family: PingFangSC-Regular;
          font-size: 14px;
          color: #000000;
          text-align: left;
        }
        &-number {
          padding-top: 3px;
          font-family: PingFangSC-Regular;
          font-size: 11px;
          color: #787878;
          text-align: left;
        }
        &-price {
          font-family: PingFangSC-Regular;
          font-size: 18px;
          color: #FF1800;
          text-align: left;
        }
      }
    }
  }
  
  .cart {
    position: absolute;
    right: 10px;
    bottom: 0;
  }

实操演示:

在这里插入图片描述

9.运行测试

说明: 执行命令,在点击内置浏览即可运行

// 进入当前目录
cd ./ && 
// 设置port的环境变量
set port=3000 &&
// 导出port的环境变量
export PORT=3000 &&
// 相当于 yarn install,安装相关依赖
yarn &&
// 启动开发环境
yarn start --port=3000

实操演示:

在这里插入图片描述

在这里插入图片描述

10.上传代码仓库

说明:我们可以将写完的代码上传到腾讯云的coding中,地址:https://chengxuyuanzhouzhou.coding.net/login/relation/registion?redirect=%2Fuser%2Fprojects
(1)注册登录,选择dev项目,并输入信息
在这里插入图片描述
在这里插入图片描述

(2)进行推送,先点左侧源代码管理,在点publish Branch 再点Publish to CODING

在这里插入图片描述

(3) 这样在仓库中就能看到提交的代码了,大功告成!!

在这里插入图片描述

五.总结

学习一项新的东西,最开始是辛苦的、无趣的,但是完成之后才会觉得这是一件最有成就感的事情,经过不断的摸索与尝试,不断的提升自己,这才是一个程序员该做的事情。

Cloud Studio的使用给了我非常不错的体验,在多个线上编程平台中有更多的优点、更好的体验。Cloud Studio可以非常容易的构建React框架,直接在线上进行开发,而且提供了特有的coding仓库与交流平台。

个人体验:整体可以说是小母牛翻跟头-一次比一次牛逼!

  • 交互体验不错,响应很快;
  • UI设计很丰富,没有特别小、难以点击等情况
  • 功能十分强大,构建框架特别方便
  • 支持协同工作,真的挺不错的,效率更高了
  • 对小白还是很友好的,引导很不错

无论在职开发人员还是初学者都建议尝试一下,挺有趣的体验!!

腾讯云Cloud Studio-云端开发 化繁为简

在这里插入图片描述

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

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

相关文章

如何优雅做好项目管理?

导言 项目本身无好坏之分&#xff0c;项目管理有做好与做坏之别。在互联网大厂的体制下&#xff0c;想要做坏一个项目很难&#xff08;可以通过换人、追加资源等方式消除风险&#xff09;&#xff0c;想要做好一个项目不容易&#xff0c;需要团队及PM付出大量心血和精力。在这…

实时业务需求和数据处理要求的满足:流处理的能力

随着数据量和数据种类的不断增加&#xff0c;企业和组织对于实时数据处理和业务响应的需求也越来越迫切。传统的批处理方式无法满足业务对于实时性和即时响应的要求&#xff0c;因此&#xff0c;流处理技术应运而生。通过流处理能力&#xff0c;可以有效地处理实时数据&#xf…

Python爬虫常用:谷歌浏览器驱动——Chromedriver 插件安装教程

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 我们在做爬虫的时候经常要使用谷歌浏览器驱动&#xff0c;今天分享下这个Chromedriver 插件的安装方法。 话不多说&#xff0c;直接开搞&#xff0c;如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 第一步、打开谷…

VR仿真实训系统编辑平台赋予老师更多自由和灵活性

为了降低院校教师在VR虚拟现实方面应用的门槛&#xff0c;VR公司深圳华锐视点融合多年的VR虚拟仿真实训系统制作经验&#xff0c;制作了VR动物课件编辑器&#xff0c;正在逐渐受到师生们的关注和应用。 简单来说&#xff0c;VR畜牧专业课件编辑器是一种可以制作虚拟现实动物教学…

【LeetCode】696 . 计数二进制子串

696 . 计数二进制子串&#xff08;简单&#xff09; 思路 我们可以将字符串按照 0 和 1 的连续段分组&#xff0c;存在 count 数组中。例如 00111011 可以得到&#xff1a;count {2,3,1,2}。这里 count 数组中两个相邻的数一定代表的是两种不同的字符。假设 count 数组中两个相…

vue3生成点选验证码,前端校验

先看效果图 verify.vue&#xff1a;源码{用时一天半的破轮子}&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; <template><div class"outside" ref&q…

寻路算法小游戏

寻路算法小demo 寻路算法有两种&#xff0c;一种是dfs 深度优先算法&#xff0c;一种是 dfs 深度优先算法 深度优先搜索的步骤分为 1.递归下去 2.回溯上来。顾名思义&#xff0c;深度优先&#xff0c;则是以深度为准则&#xff0c;先一条路走到底&#xff0c;直到达到目标。这…

spring的核心技术---bean的生命周期加案例分析详细易懂

目录 一.spring管理JavaBean的初始化过程&#xff08;生命周期&#xff09; Spring Bean的生命周期&#xff1a; 二.spring的JavaBean管理中单例模式及原型&#xff08;多例&#xff09;模式 2.1 . 默认为单例&#xff0c;但是可以配置多例 2.2.举例论证 2.2.1 默认单例 2.2…

什么是报表测试?报表测试有哪些?

报表测试主要分为&#xff1a;报表界面测试、报表安全性、报表准确性、报表展示速度&#xff08;也就是性能&#xff09;。 数据准确性测试 报表测试的系统分为两类&#xff0c;一类是业务系统中&#xff0c;带有统计分析功能模块&#xff0c;该模块中包含分析报表&#xff0c;…

Docker碎碎念

docker和虚拟机的区别 虚拟机&#xff08;VM&#xff09;是通过在物理硬件上运行一个完整的操作系统来实现的。 每个虚拟机都有自己的内核、设备驱动程序和用户空间&#xff0c;它们是相互独立且完全隔离的。 虚拟机可以在不同的物理服务器之间迁移&#xff0c;因为它们是以整…

【仿写tomcat】六、解析xml文件配置端口、线程池核心参数

线程池改造 上一篇文章中我们用了Excutors创建了线程&#xff0c;这里我们将它改造成包含所有线程池核心参数的形式。 package com.tomcatServer.http;import java.util.concurrent.*;/*** 线程池跑龙套** author ez4sterben* date 2023/08/05*/ public class ThreadPool {pr…

社科院与美国杜兰大学金融管理硕士项目——畅游于金融世界

随着社会经济的不断发展&#xff0c;职场竞争愈发激烈&#xff0c;很多同学都打算通过报考研究生来实现深造&#xff0c;提升自己的综合能力和竞争优势&#xff0c;获得优质的证书。而对于金融专业的学生和在职人员来说&#xff0c;社科院与美国杜兰大学金融管理硕士项目是一个…

ElasticSearch7.x + kibana7.x使用记录

目录 查询所有索引 查询索引的mapping信息 添加索引的同时添加mapping 在原有基础上新增字段 旧的索引迁移到新的索引&#xff08;使用场景&#xff1a;数据迁移、索引优化、数据转换&#xff09; 查询索引下的文档总数 场景1&#xff1a;某一个字段的值是数组&#xff0…

数据的深海潜行:数据湖、数据仓库与数据湖库之间的微妙关系

导言&#xff1a;数据的重要性与存储挑战 在这个信息爆炸的时代&#xff0c;数据已经成为企业的核心资产&#xff0c;而如何高效、安全、便捷地存储这些数据&#xff0c;更是每个组织面临的重大挑战。 数据作为组织的核心资产 数据在过去的几十年里从一个辅助工具演变成企业的…

视频怎么转换成gif表情包?三步完成视频在线转gif

小伙伴们在使用gif表情包的时候&#xff0c;都会注意到有些是视频片段&#xff0c;其实视频转换成gif动图已经很常见了&#xff0c;今天就来给大家演示一下使用视频转gif工具&#xff08;https://www.gif.cn&#xff09;来将视频在线转gif&#xff0c;一起来学习一下吧。 打开…

ps由于找不到msvcp140.dll无法继续执行需要怎么处理

最近在使用Photoshop时遇到了一个问题&#xff0c;它提示我缺少了msvcp140.dll文件。这让我无法正常使用Photoshop&#xff0c;非常困扰。然而&#xff0c;通过一番尝试和研究&#xff0c;我终于成功修复了这个问题&#xff0c;小编就把修复方法分享给大家。 ps为什么会由于找不…

【文生图系列】Denoising Diffusion Probabilistic Models论文解读

文章目录 扩散模型扩散过程反向过程优化目标 训练过程参考 此篇论文是DDPM的奠基之作&#xff0c;后续扩散模型相关论文都基本继承了前向加噪-反向降噪-训练这样的框架。论文全是公式&#xff0c;理解起来好难好难。 【文生图系列】基础篇-马尔可夫链 【文生图系列】基础篇-变分…

springboot中的properties配置文件:MySQL密码添加双引号会报错

在springboot项目中&#xff0c;如果使用的配置文件是properties 格式&#xff0c;那么给属性的值添加双引号可能会出错&#xff0c;比如给MySQL的密码添加双引号&#xff1a; 我们在调试模式下&#xff0c;一探究竟&#xff1a; 然后在其poolProperties中查看&#xff0c;密…

如何快速在vscode中实现不同python文件的对比查看

总体而言&#xff1a;两种方式。一种是直接点击vscode右上角的图标&#xff08;见下图&#xff09;。 另一种方式就是使用快捷键啦“**Ctrl**”&#xff0c;用的时候选中想要对比的python文件&#xff0c;然后快捷键就可以达到下图效果了&#xff1a; 建议大家直接使用第二种…