2022年中总结丨我的技术成长

500 阅读4分钟

一、前言

2022年已经过了一大半了,我来到当前的公司也已经将近半年时间了,平稳的度过了实习期,目前学到的东西很多。

  • 1.如何从vue+element过度到react+antd
  • 2.如何正确的使用git版本控制工具

二、技术层面的转变

在进入公司之前做了有将近两年的前端,一直都是vue的那一套东西,前端uniapp,后台管理vue+element,自己也制定的有react的学习计划,但是没有两天就放弃了,也只是简单的了解了一些react的相关知识,下面是自己对于vue和react的比较以及一些知识点的总结。

1.横向对比

一般 H5 的,或者一些做不大的系统,首选 Vue。因为 Vue 简单,开发效率比较高。同时 Vue 包的体积也更小,在移动端网络差异大的情况下,资源体积是非常重要的。(vue3.0除外,vite+vue3.0几乎和react18差不了很多)

像一些后台系统,会越做越大的,就用 React。解决方案更多,后期也更方便迭代与维护。

2.核心思想

Vue 早期定位是尽可能的降低前端开发的门槛(这跟 Vue 作者是独立开发者也有关系)。所以 Vue 推崇灵活易用(渐进式开发体验),数据可变,双向数据绑定(依赖收集)。

React 早期口号是 Rethinking Best Practices(重新思考最佳实践)。背靠大公司 Facebook 的 React,从开始起就不缺关注和用户,而且 React 想要做的是用更好的方式去颠覆前端开发方式(事实上跟早期 jquery 称霸前端,的确是颠覆了)。所以 React 推崇函数式编程(纯组件),数据不可变以及单向数据流。函数式编程最大的好处是其稳定性(无副作用)和可测试性(输入相同,输出一定相同),所以通常大家说的 React 适合大型应用,根本原因还是在于其函数式编程。

3.生命周期对比
Vue

Vue 生命周期官方图解

image.png

React

image.png

对比
  • Vue 提供的比较多,但是常用的: created/mounted/destroyed
  • React 新版废弃了一些,常用的: componentDidMount/componentDidUpdate/componentWillUnmount,Hooks 更是没有
4.数据流

vue是双向绑定,单向数据流

<input v-model="value" >

react是单项数据流,万物皆可props,这里和小程序的语法很相似

<input value="this.props.value" onChange="this.onChange.bind(this)">
onChange(e){
    this.setState({
         value:e.target.value
    })
}
5.React的组件
//函数式组件
function Welcome(props) {
  return <h1>Hello, {props.name}</h1>;
}
//该函数是一个有效的 React 组件,因为它接收唯一带有数据的 “props”(代表属性)对象与并返回一个 React 元素。这类组件被称为“函数组件”,因为它本质上就是 JavaScript 函数。
//类式组件
class Welcome extends React.Component {
  render() {
    return <h1>Hello, {this.props.name}</h1>;
  }
}
6.组件传值

Vue

  • props/emit\

  • provide/inject\

  • vuex(双向数据绑定,响应式)\

  • event bus\

React

  • props(子传父通过props.function)\

  • context\

  • redux(单向数据流)redux至今没有用过,貌似比vuex复杂很多

三、git的使用

之前我待的公司全部都是一个前端一个后台,也没有协同开发这一个说法,都是在测试环境测。测完了直接切域名更新代码,也没有单独的测试环境,开发完了一个项目就是直接提交推送就行了,也不用考虑代码冲突的问题,如果有问题直接强推,当然这中方法不可取,现在对git虽然不说精通,但是也能满足日常的使用

git操作命令

image.png

正常的会有master和test这两个环境,顾名思义,master就是线上生产环境,test就是测试环境,

大版本迭代基本都是半个月到1个月一次,当然版本迭代需要开发的需求很多,这时候我们就从测试环境拉取分支,将代码提交到测试分支上,版本迭代完毕,然后从test分支向master分支合并,更新代码

修复紧急bug,这个时候因为bug比较紧急,所以就直接从线上分支拉取代码,在本地进行开发,开发完了放到测试环境进行测试,完毕后进行本地分支往线上环境进行合并代码

当然,你不会这些命令也罢,如果你用的是webstorm,那你提交代码很方便,里面直接集成的有git工具,当然大部分的前端用的还是vscode,那你可以用小乌龟和sourcetree这两个进行操作