专业网站建设机构建筑专业网站有哪些

pingmian/2026/1/26 20:55:42/文章来源:
专业网站建设机构,建筑专业网站有哪些,宁波专业平台网站建设,合肥 做网站#x1f4bb; React 基础篇#xff08;二#xff09;#x1f3e0;专栏#xff1a;React #x1f440;个人主页#xff1a;繁星学编程#x1f341; #x1f9d1;个人简介#xff1a;一个不断提高自我的平凡人#x1f680; #x1f50a;分享方向#xff1a;目前主攻… React 基础篇二专栏React 个人主页繁星学编程 个人简介一个不断提高自我的平凡人 分享方向目前主攻前端其他知识也会阶段性分享 格言☀️没有走不通的路只有不敢走的人☀️ 让我们一起进步一起成为更好的自己 文章目录 React 基础知识篇二style 样式注释className 类名不同的条件添加不同的类名(1) 使用三目运算(2) 使用第三方包实现classnamesstyled-components props(1) 使用(2) 默认值(3) 校验props接收传递值的数据类型 条件渲染(一) 三目运算符(1) 变量三目(2) style三目(3) class三目 (二) 短路运算符 循环渲染插槽(1) 使用(2) **具名插槽** state定义state的两种方式 setState解析state中的标签事件的传参与this的指向this的指向事件传参 受控组件和非受控组件表单输入绑定非受控组件 状态提升类组件中函数组件中 React 基础知识篇二 style 样式 类组件和函数组件添加样式的方式是完全一样的 注意点 添加样式的时候要使用两个大括号{{}}外面是jsx的括号表示将{}中的值变为js表达式里面是对象的括号 return div style{{color:red}}style/div如果有连字符的要写成小驼峰的语法 return div style{{color:red, fontSize:20px}}style/div如果说单位是px的可以省略单位并且写成数字 注并不是所有样式属性的px单位都可以省略如lineHeight原本就不可以省略省略后代表的是字体小的倍数 return div style{{color:red,fontSize:20,height:50px,lineHeight:2}}style/div }注释 jsx中的注释会被{}包裹因为注释也被默认当作是js表达式 class About extends React.Component {render() {return {/* divnihao/div */}/} }className 类名 通过添加className类名修改样式 .test1 {color: red; } .test2 {background-color: aqua; }import React from react // 1. 引入css文件 import ./class.css const testClass (){return div classNametest1 test2通过class修改样式/div/ } export default testClass注在标签中不能用class属性要用className因为jsx中使用了类防止起冲突。 还有一种标签上的属性名在jsx中发生了改变label标签上的for属性改为htmlFor防止与for循环起冲突 label htmlForfos年龄/label input typetext idfos placeholder请输入你的年龄/不同的条件添加不同的类名 (1) 使用三目运算 class.css文件 .red {color: red; }.green {color: green; }App.jsx根组件 import React from react // 1. 引入css文件 import ./class.css // 2. 设置变量 const red false; const App () {return (h2不同条件添加不同样式/h2{/* 通常情况下可以使用三目来解决问题 */}p className{red ? red : green}hello react!!/p/); }; export default App(2) 使用第三方包实现 classnames 官网 classnames 安装 npm install classnames yarn add classnamesimport { Component } from react; import classNames from classnames/bind; import styles from ./class.css;let cx classNames.bind(styles); let show true;class changeColor extends Component {render () {let className cx({colorRed: show,colorGreen: show,});return div className{className}通过第三包classNames修改样式/div} }; export default changeColorstyled-components 官网 styled-components 安装 npm install styled-components yarn add styled-components使用 import React from react import styled from styled-components; // 方式一 const Title styled.h 1font-size: 1.2em;text-align: center;color: palevioletred; ; // 方式二进行函数传参 const Title1 styled.h2/* 还可以使用自定义属性进行props的传参 */font-size: ${(props) props.size px};color: ${(props) props.color}; ;const testClass (){return Title className{Title}通过class修改样式/TitleTitle1 size30h2/Title1Title1 colorgreenh2-2/Title1/ } export default testClass安装vscode中的插件vscode-styled-components(可以在styled.xx后的字符串中进行标签提示) props (1) 使用 props是父组件传递给子组件的自定义属性 特点 props 具有响应式遵循 单向数据流子组件 不能直接修改props的值 注 类组件通过this.props获取父组件传递的值函数组件通过函数参数props获取父组件传递的值 import React, { Component } from react // 类组件通过this.props获取父组件传递的值 class Child1 extends Component {render() {const { name, age } this.propsreturn (divchild1 - {name} - {age}/div);} } // 函数组件通过函数参数props获取父组件传递的值 const Child2 ({ count }) {return divchild2 - {count}/div/ }class App extends Component {state { name:zs}render() {return divprops传参/divChild1 age{10} name{this.state.name} /Child2 count{100} //}componentDidMount() {setTimeout(() {this.setState({name: lisi,});}, 2000);} }export default App(2) 默认值 import React, { Component } from reactclass Child1 extends Component {// 类组件设置默认值的方式一static defaultProps {name:ww,age: 18,sex:男}render() {const { name, age, sex } this.propsreturn (divchild1 - {name} - {age} - {sex}/div);} } // 类组件设置默认值的方式二 // Child1.defaultProps { // name:ww, // age: 18, // sex:男 // }const Child2 ({ count, sex }) {return divchild2 - {count} - {sex}/div/ } // 函数组件设置默认值的方式 Child2.defaultProps {count: 18,sex:女 }class App extends Component {state { name:zs}render() {return divprops传参/divChild1 name{this.state.name} age{19}/Child2 count{100} //} }export default App(3) 校验props接收传递值的数据类型 使用第三方包prop-types 官网 prop-types 安装 npm install --save prop-types yarn add prop-types --save 常用的支持检测的数据类型 optionalArray: PropTypes.array,optionalBigInt: PropTypes.bigint,optionalBool: PropTypes.bool,optionalFunc: PropTypes.func,optionalNumber: PropTypes.number,optionalObject: PropTypes.object,optionalString: PropTypes.string,optionalSymbol: PropTypes.symbol,optionalEnum: PropTypes.oneOf([News, Photos]),optionalUnion: PropTypes.oneOfType([PropTypes.string,PropTypes.number,PropTypes.instanceOf(Message)]),requiredFunc: PropTypes.func.isRequired,requiredAny: PropTypes.any.isRequired,使用 import React, { Component } from react // 1.直接解构 import {string,number,oneOfType} from prop-types;class Child1 extends Component {// 类组件检测数据类型的方式一static propTypes {name:string,age:oneOfType([string,number]),}render() {const { name, age,sex } this.propsreturn (divchild1 - {name} - {age} - {sex}/div);} } // 类组件检测数据类型的方式二 // Child1.propTypes { // name:string, // age:number // }const Child2 ({ count,sex }) {return divchild2 - {count} - {sex}/div/ } // 函数组件检测数据类型的方式 Child2.propTypes {count:number }class App extends Component {state { name:zs}render() {return divprops传参/divChild1 name{this.state.name} age{19}/Child2 count{100} //} }export default App条件渲染 (一) 三目运算符 (1) 变量三目 通过state中的变量控制标签的显示与隐藏相当于Vue中的v-if class TestState extends Component {constructor(){super()this.state {show: false}}render() {const {show} this.state;return ({/* 变量三目运算 */}{show ? p显示1/p:null}/);} }(2) style三目 通过state中的变量控制标签样式切换来控制标签的显示与隐藏相当于Vue中的v-show class TestState extends Component {constructor(){super()this.state {show: false}}render() {const {show} this.state;return ({/* style三目运算 */}p style{{display : show?block:none}}显示3/p/);} }(3) class三目 通过state中的变量控制标签不同类名的样式切换来控制标签的显示与隐藏相当于Vue中的v-show class TestState extends Component {constructor(){super()this.state {show: false}}render() {const {show} this.state;return ({/* class三目运算通过切换类名实现 */}p className{show?show:noshow}显示4/p/);} } // 样式文件中: .show {display: block; } .noshow {display: none; }(二) 短路运算符 通过短路运算符来控制标签的显示与隐藏Vue中的v-if class TestState extends Component {constructor(){super()this.state {show: false}}render() {const {show} this.state;return ({/* 短路运算 */} {show p显示2/p}/);} }循环渲染 通过数组的map方法的映射来进行标签内容的循环渲染 class TestState extends Component {constructor(){super()this.state {list: [1,2,3,4,5]}}render() {const {show} this.state;return ({/* 循环渲染 */}ul{list.map(item li key{item}{item}/li)}/ul/);} }插槽 (1) 使用 父组件在父组件的子组件标签内容中直接写要传递的内容也可以是标签 import React, { Component } from reactclass App extends Component {render() {return divReact 插槽/divChild1h1h1/h1/Child1Child2spanspan1/span/Child2/} } export default App类组件接收使用this.props中的children import React, { Component } from react // 类组件使用this.props中的children进行接收父组件的子组件上的标签 class Child1 extends Component {render() {return (div子类组件 - {this.props.children}/div/);} }函数组件接收使用函数形参children import React from react // 函数组件使用函数形参children进行接收父组件的子组件上的标签 const Child2 (props) {return div子函数组件 - {props.children}/div/ }(2) 具名插槽 数组形式 可以在父组件传递多个内容时使用数组形式子组件中使用数组的索引让其使用在不同的位置 父组件 import React, { Component } from reactclass App extends Component {render() {return divReact 插槽/divChild1h1h1/h1h2h2/h2/Child1Child2spanspan1/spanspanspan2/span/Child2/} } export default App子类组件 class Child1 extends Component {render() {return (div{this.props.children[0]} - 子类组件 - {this.props.children[1]}/div/);} }子函数组件 const Child2 (props) {return div{props.children[0]} - 子函数组件 - {props.children[1]}/div/ }对象形式 可以在父组件传递多个内容时使用对象形式子组件中使用数组的索引让其使用在不同的位置 父组件 import React, { Component } from reactclass App extends Component {render() {return divReact 插槽/divChild1{{h1: h1h1/h1,h2: h2h2/h2}}/Child1Child2{{span1: spanchildren1/span,span2: spanchildren2/span}}/Child2/} } export default App子类组件 class Child1 extends Component {render() {return (div{this.props.children.h1} - 子函数组件 - {this.props.children.h2}/div/);} }子函数组件 const Child2 (props) {return div{props.children.span1} - 子函数组件 - {props.children.span2}/div/ }state 相当于Vue中的data响应式数据 只有类组件可以定义自己的状态state 定义state的两种方式 使用构造函数的构造器进行定义 class TestState extends Component {// constructor当类实例化的时候被调用constructor(){// 在constructor里面需要先调用super方式才能使用thissuper()this.state {name:zs}}render() {// 方式一// return (// // divcount:{this.state.count}/div// /// );// 方式二解构const {count,name} this.state;return (divcount:{count}/divdivname:{name}/div/);} }ES7 属性初始化器 class TestState extends Component {state { count:10};render() {const {count,name} this.state;return (divcount:{count}/divdivname:{name}/div{/* 添加属性的时候如果使用了变量({})不能用引号 */}p title{this.state.title}react/p/);} }jsx中添加属性(如果使用了变量({})不能用引号) p title{this.state.title}react/psetState 不能直接修改state的值直接修改没有响应式 this.state.count 10setState里面有两个参数 第一个参数对象或函数第二个参数回调函数 第一个参数可以是一个对象这个对象会和state对象合并 this.setState({count:this.state.count1,name:ls })当连续修改同一个变量的值由于setState是异步的会同时执行所以使用对象形式无法实现11 this.setState({count:this.state.count1,name:ls }) this.setState({count:this.state.count1,name:ls })第一个参数也可以是一个函数 如果一次的改动要基于前一次的值用函数的写法场景上拉加载 this.setState((prevState){return{ count:prevState.count1} }) this.setState((prevState){return{ count:prevState.count1} })如果想要省略大括号和return需要加小括号 this.setState((prevState)({count:prevState.count1 })) // 此时打印输出的是修改前的值 console.log(this.state.count);// 修改前的值第二个参数可选的回调函数会在数据改变之后调用 this.setState({count:this.state.count1,name:ls },(){console.log(this.state.count); })实现在数组list中添加一项4 this.setState((prevState)({// 方式一利用数组的concat方法// list:prevState.list.concat(4)// 方式二利用拓展运算符list:[...prevState.list,4] })) console.log(this.state.count);// 仅限于复杂数据类型 // 方式三直接修改list然后在合并 this.state.list.push(4) this.setState({})注 18版本之后所有的setState都是异步的18版本之前定时器、原生js是同步的、合成事件和生命周期是异步的 解析state中的标签 类似于Vue中的v-html state { content:h1v-html/h1 } div dangerouslySetInnerHTML{{__html:this.state.content}}/div事件的传参与this的指向 合成事件事件名称要写成小驼峰onClick button onClick{this.handleClick}btn/buttonthis的指向 在类组件中直接写普通函数当事件处理函数的时候会出现this的指向不对的问题 改变this的指向的方式 直接内联地使用 this.xxx.bind(this)不推荐 bind函数会产生一个新函数并且新函数会存在于内存中会导致内存占用太高 button onClick{this.handleClick.bind(this)}btn/button 在constructor构造器里面使用 this.xxx this.xxx.bind(this); 比较推荐官网在用 将bind产生的新函数存下来了不会造成内存增加的问题 constructor() {super()this.handleClick this.handleClick.bind(this) }使用箭头函数 推荐 箭头函数的this指向父级既方便又不会增加内存 handleClick () {console.log(this.state.count); }事件传参 事件后面不要加括号函数会自执行 button onClick{this.handleClick()}btn/button事件传参的方式 内联地使用 this.xxx.bind(this, 2) bind可以改变this指向。会产生一个新函数bind的第二个参数会作为新函数的第一个参数 bind函数是不会自动调用的 不推荐会使得内存增加 class App extends Component {state {count: 1}handleClick(n) {console.log(this.state.count, n);}render() {return (div事件/divbutton onClick{this.handleClick.bind(this, 2)}btn/button/);} }内联地使用 onClick{() this.xxx(2)} 不是特别推荐, 用的最多的方式 每一个箭头函数都会指向不同的内存也会使内存增加 class App extends Component {state {count: 1}handleClick (n,e) {console.log(this.state.count, n,e);}render() {return (div事件/divbutton onClick{(e) this.handleClick(2,e)}btn/button /);} }使用柯里化函数 class App extends Component {state {count: 1}handleClick (n) (e) {console.log(this.state.count, n ,e);}render() {return (div事件/divbutton onClick{this.handleClick(2)}btn/button);} }fn (n) () { console.log(n); };理论上最推荐的方式 受控组件和非受控组件 表单输入绑定 它们都是特指表单控件 受控组件让我们自己来控制的表单只要input有value属性和onChange事件那么就是受控组件 import React, { Component } from reactclass App extends Component {state {iptvalue: zs}changeIpt (e) {this.setState(() {return {iptvalue: e.target.value}})}render() {return (h2表单绑定/h2input typetext value{this.state.iptvalue} onChange{this.changeIpt} /p{this.state.iptvalue}/p/);} }export default App;非受控组件 使用createRef去创建内存获取dom节点使用变量指向该内存然后绑定到input上 非受控组件的默认值要用defaultValue input typetext defaultValue非受控组件 /import React, { Component, createRef } from reactclass App extends Component {constructor() {super()this.ipt createRef()}state {textValue: zs}chageIpt () {console.log(this.ipt);}render() {return (h1非受控组件/h1{/* 非受控组件的默认值要用defaultValue */}input typetext ref{this.ipt} defaultValue非受控组件 /button onClick{this.chageIpt}btn/button/);} }export default App;使用场景文件上传框只读不能去修改信息 状态提升 就是兄弟组件间传参 实现方式先使用子传父在利用父传子实现兄弟组件间的传参 父传子在父组件的子组件标签上添加自定义属性然后 如果是类组件则通过this.props.属性名进行接收 如果是函数组件则通过函数参数props.属性名进行接收子传父在父组件的子组件标签上添加自定义事件然后 如果是类组件则通过this.props.自定义事件名调用父组件中的事件并进行参数传递 如果是函数组件通过函数参数props.自定义事件名调用父组件中的事件并进行参数传递 类组件中 传值的子组件1 import React, { Component } from react;class Child1 extends Component { state {count: 10, };render() {return divchild1组件/div; }componentDidMount() {this.props.onGetcount(this.state.count); } }export default Child1; 父组件 import React, { Component } from react;import Child1 from ./Child1; import Child2 from ./Child2;class App extends Component { state {num: null, };fn (c) {// console.log(fn, c);this.setState({num: c,}); };render() {return (h2状态提升/h2Child1 onGetcount{this.fn} /Child2 num{this.state.num} //); } }export default App; 接收的子组件2 import React, { Component } from react;class Child2 extends Component { render() {return divchild2组件 - {this.props.num}/div; } }export default Child2;函数组件中 传值的子组件1 import React, { useState } from reactconst Child1 (props) {const [age] useState(20)const handleClick () {props.onGetNum(age)}return (h3子组件1/h3spanC1: {age}/spanbutton onClick{handleClick}将age传递给父组件/button/); }export default Child1;父组件 import React, { useState } from react import Child1 from ./Child1; import Child2 from ./Child2; const App () {const [count, setCount] useState(0)const fn (n) {setCount(n)}return (h3父组件/h3spanFcount: {count}/spanChild1 onGetNum{fn} /Child2 count{count} //); }export default App;接收的子组件2 import React from reactconst Child2 (props) {return (h3子组件2/h3span{props.count}/span/); }export default Child2;结束语 希望对您有一点点帮助如有错误欢迎小伙伴指正。 点赞您的赞赏是我前进的动力 ⭐收藏您的支持我是创作的源泉 ✍评论您的建议是我改进的良药 一起加油

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

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

相关文章

大丰网站建设网站开发文档百度文库

列表 是最常用到的组件 一 ForEach 渲染控制语法————Foreach Foreach的作用 遍历数组项,并创建相同的布局组件块在组件加载时, 将数组内容数据全部创建对应的组件内容, 渲染到页面上 const swiperImage: Resource[] {$r("app.me…

重庆网站建设狐灵wordpress The7 v4.4.8深度汉化

题库来源:安全生产模拟考试一点通公众号小程序 2023年【R1快开门式压力容器操作】试题及解析及R1快开门式压力容器操作模拟试题,包含R1快开门式压力容器操作试题及解析答案和解析及R1快开门式压力容器操作模拟试题练习。安全生产模拟考试一点通结合国家…

外贸婚纱网站 侵权网站自适应

[网鼎杯 2020 朱雀组]Think Java swagger [[swagger]] 首先下载源码,查看之后发现 查找swagger资料,或者扫描,得到:swagger-ui.html swagger-ui 提供了一个可视化的UI页面展示描述文件。接口的调用方、测试、项目经理等都可以…

韶关市手机网站建设怎么样襄阳教育云平台网站建设

HarmonyOS的开发语言是ArkTS、JS(JavaScript)。 ArkTS简介 ArkTS是HarmonyOS优选的主力应用开发语言。ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,继承了TS的所有特性,是TS的超集。因此,在学习…

正安县网站seo优化排名长春市建设集团

一、变量 1). 命名规则: 1. 变量名不能使用系统关键字或保留关键字 2. 变量区分大小写 3. 变量命名由字母,数字,下划线组成但不能以数字开头 4. 不需要声明变量类型 是 a 1 非 int a 1 5. 查看变量内存地址 id(a), id(b) 6…

企业为什么选择网站建设奉贤网站建设推广

打开powerDesigner 新建 PDM(物理数据模型) 添加表字段 双击表,设置ID自增 选择导出数据库表SQL 导出成功 使用三方工具连接数据库,然后运行对应SQL文件即可 导入SQL文件数据到powerDesigner

做药的常用网站thinkphp5做的网站

getModelName() 获取当前Model的名称getTableName() 获取当前Model的数据表名称switchModel(type,varsarray()) 动态切换模型table() 设置当前操作的数据表field() 设置要查询的数据字段where() 设置查询或者操作条件data(data) 设置数据对象order(order) 设置排序limit(limit)…

建设网站的不足百度学术论文查重官网入口

目录 Django 使用Mysql数据库本地安装Mysql数据服务安装好Pymysql服务Django配置数据库迁移各种报错无法找到mysqlclient数据库拒绝连接 Django 使用Mysql数据库 本地安装Mysql数据服务 安装好Pymysql服务 python3 -m pip install PyMySQL官方文档介绍 Django配置 官网文档 …

宿城区住房和城乡建设局网站做动感影集的网站

今天25学堂跟大家推荐一款非常有趣和简单的APP图标生成工具:Iconion Icon Generator(iconion图标生成器) 我们可以用它来创建美丽的扁平化图标,长投影图标,桌面图标,社会媒体图标和移动APP图标等&#xff0…

正能量网站推荐做网站需要用到的语言

编译器实质是程序指令,不由操作系统管理 **闲逛进程:**当系统中没有就绪进程时,闲逛进程idle一直运行,优先级最低,不需要除cpu以外的任何资源 多任务操作系统具有并发和并行的特点 操作系统通过硬件地址机制保护进程的地址空间,使得每个进程只能访问自己的地址空间。 不同…

屏山县建设局网站wordpress showcase

Algorithm 题目:删除链表倒数第 n 个结点 分析:可以把通过两个结点进行标记,有一个节点需要遍历得快点,简称为快结点,有个结点遍历得慢,简称为慢结点。快结点先停在正数第 n 个结点处,然后快慢…

建筑型专业网站有哪些国外广告联盟平台

搜索引擎广告作为企业获取潜在客户的重要渠道之一,其效果直接关系到营销策略的成功与否。两大搜索引擎巨头——谷歌(Google)和必应(Bing)各自提供了广告平台,即谷歌广告(Google Ads)…

顺德网站制作案例信息怎么自己做论坛网站吗

git操作大全系统的整理一下git操作二级目录三级目录系统的整理一下git操作 命令功能git branch -a查看当前所有的分支(远端和本地)git branch -vv查看当前分支的细节git branch -D mybranch删除名字为mybranch的分支git checkout mybranch切换mybranch分…

wordpress 目录主题潍坊优化网站排名

前言:测试简介前端常见的问题:修改某个模块功能时,其它模块也受影响,很难快速定位bug多人开发代码越来越难以维护不方便迭代,代码无法重构代码质量差增加自动化测试后:我们为核心功能编写测试后可以保障项目…

网站建设文化代理商wordpress禁止ip访问

文章目录 LinkedHashMap有顺序的map数据结构概述基本属性构造方法Entry定义put()方法get()方法TreeMap 自定义排序规则的红黑树map数据结构put函数源码get获取函数源码如何保证有序性HashSetHashSet如何去重源码分析LinkedHashSetTreeSetIterator迭代器应对多线程并发修改的fai…

宝安区建设网站wordpress revolution slider

学习记录:今日共计学习12h 数学:纯计算1.5h,用克拉默法则解方程,华里士公式大全,三个公式的推导,推导出来后,一道模拟卷的大题就能直接秒了,又捡回了12分。 英语:作文一篇22年阅读长难句回顾1…

手机软件下载网站微信公众号创建需要多少钱

今天给大家带来一款纯css3实现的鼠标悬停动画按钮。这款按钮鼠标经过前以正方形的形式&#xff0c;当鼠标经过的时候以动画的形式变成圆形。效果图如下&#xff1a; 在线预览 源码下载 实现的代码。 html代码&#xff1a; <div><span></span></div> …

甘肃省省经合局网站建设的通知wordpress 页面压缩

目录 前瞻 CPU 资源控制 设置CPU使用率上限 设置CPU资源占用比&#xff08;设置多个容器时才有效&#xff09; 设置容器绑定指定的CPU 内存资源限制 对磁盘IO配额控制&#xff08;blkio&#xff09;的限制 前瞻 Docker 通过 Cgroup 来控制容器使用的资源配额&#xff0c…

网站首页静态化代码网站直接做标准曲线

文章目录 第二十五章 控制到 XML 模式的映射 - 将文字属性映射到 XML 模式将文字属性映射到 XML 模式IRIS 数据类型类的默认 XSD 类型 第二十五章 控制到 XML 模式的映射 - 将文字属性映射到 XML 模式 将文字属性映射到 XML 模式 本节讨论如何将文字&#xff08;非集合&#…

建立网站的步骤郑州软件app开发公司

前言 当看到github上面比较好的项目&#xff0c;想用到自己的项目&#xff0c;又不想仓库别人看&#xff0c;同时网络不好&#xff0c;囊中又羞涩的情况下&#xff0c;怎么办&#xff1f; 可以考虑用gitee来同步更新github上面的项目。 一、在gitee创建私有仓库 新建的是选择…