从零开始构建一个现代化前端项目:React + Go 全栈初体验

活泼哲学家
2026-01-13 10:35
阅读 717

大家好,我是掘金上常写教程的全栈工程师小陈,985科班出身,带过不少零基础转行的同学。最近有朋友问我:“我想做个自己的网站,但连命令行都没用过,能学会吗?”——这让我想起自己刚学编程时,面对一堆英文术语、黑底白字的终端窗口,手都在抖。

今天这篇教程,就是为完全没接触过开发的朋友写的。我们将一起从零搭建一个前后端分离的小项目:前端用 React,后端用 Go(Golang)。别被“全栈”吓到,我会用最直白的语言、最完整的步骤、最真实的踩坑经验,带你走完第一圈。


为什么选 React 和 Go?

很多新手会问:“为啥不用 Vue 或 Node.js?”
其实 React 是目前企业级前端的主流选择,生态强大;而 Go 语法简洁、性能高、部署简单,特别适合做 API 后端。两者组合,既能学到现代前端思想,又能避开 JavaScript 后端的复杂配置。

我当初学的时候,先用 Express 写后端,结果光是 package.json 和中间件就折腾了三天。后来改用 Go,一个文件就能跑起服务,省心太多!


第一步:环境准备(别跳过!)

安装 Node.js(前端依赖)

  1. 打开 https://nodejs.org,下载 LTS 版本(长期支持版,更稳定)
  2. 安装时一路“下一步”,别改路径
  3. 安装完成后,打开终端(Mac 用 Terminal,Windows 用 PowerShell 或 CMD),输入:
    node -v
    npm -v
    
    如果显示版本号(如 v18.17.0),说明安装成功!

⚠️ 坑点提醒:不要用 nvm 管理 Node 版本!零基础同学先别碰版本管理工具,容易把自己搞晕。

安装 Go(后端依赖)

  1. 访问 https://go.dev/dl/,下载对应你操作系统的安装包
  2. 安装后,在终端运行:
    go version
    
    能看到 go1.21.x 之类的输出,就 OK 了。

💡 小技巧:Go 安装后会自动配置环境变量。如果报“command not found”,重启终端试试。

安装代码编辑器

推荐 VS Code(免费、轻量、插件多):

  • 下载地址:https://code.visualstudio.com/
  • 安装后,建议装两个插件:
    • ESLint(检查 JavaScript 错误)
    • Go(官方 Go 语言支持)

第二步:创建你的第一个 React 项目

我们用官方脚手架 create-react-app,它能自动生成所有配置。

在终端执行:

npx create-react-app my-frontend
cd my-frontend
npm start

稍等片刻,浏览器会自动打开 http://localhost:3000,看到一个旋转的 React logo —— 恭喜!你已经跑起了第一个前端项目。

🙋‍♂️ 新手常见问题:
Q:卡在 Installing packages... 怎么办?
A:国内网络慢,可以换淘宝源:

npx create-react-app my-frontend --registry https://registry.npmmirror.com

第三步:理解 React 的核心思想

React 的核心就两点:

  1. 组件化:把页面拆成小积木(比如 Header、Button、List)
  2. 状态驱动:数据变了,界面自动更新

我们打开 src/App.js,这是主组件:

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <p>Hello, React!</p>
      </header>
    </div>
  );
}
export default App;

试着把 <p>Hello, React!</p> 改成 <p>我的第一个项目</p>,保存后浏览器会自动刷新!这就是热更新,超方便。


第四步:用 Go 写一个简单的后端 API

现在我们让前端能“说话”——需要一个后端接口返回数据。

新建一个文件夹 my-backend,里面创建 main.go

package main

import (
	"encoding/json"
	"net/http"
)

type Message struct {
	Text string `json:"text"`
}

func helloHandler(w http.ResponseWriter, r *http.Request) {
	msg := Message{Text: "Hello from Go!"}
	w.Header().Set("Content-Type", "application/json")
	json.NewEncoder(w).Encode(msg)
}

func main() {
	http.HandleFunc("/api/hello", helloHandler)
	http.ListenAndServe(":8080", nil)
}

在终端进入 my-backend 目录,运行:

go run main.go

如果看到没报错,说明服务已启动!打开浏览器访问 http://localhost:8080/api/hello,你会看到:

{"text":"Hello from Go!"}

✅ 踩坑经验:
我第一次写 Go 接口时,忘了设置 Content-Type,前端收到的是纯文本,解析 JSON 报错。记住:API 必须声明返回 JSON 格式!


第五步:前端调用后端接口(关键!)

回到 my-frontend 项目,修改 src/App.js

import React, { useState, useEffect } from 'react';

function App() {
  const [message, setMessage] = useState('');

  useEffect(() => {
    fetch('http://localhost:8080/api/hello')
      .then(res => res.json())
      .then(data => setMessage(data.text))
      .catch(err => console.error('请求失败:', err));
  }, []);

  return (
    <div className="App">
      <header className="App-header">
        <p>{message || '加载中...'}</p>
      </header>
    </div>
  );
}

export default App;

保存后,页面会从“加载中...”变成“Hello from Go!”。

🔒 跨域问题预警!
如果你看到控制台报错 CORS error,别慌!这是因为浏览器阻止了跨域请求(前端 3000 端口,后端 8080 端口)。

解决方案(开发阶段)
my-frontend/package.json 中添加一行:

{
  "name": "my-frontend",
  "proxy": "http://localhost:8080",
  // ...其他内容
}

然后重启前端项目npm start)。这样所有 /api 开头的请求都会自动代理到 Go 服务。

💡 这招我用了三年,比配 Nginx 简单一百倍!


第六步:完整项目结构梳理

现在你有两个独立项目:

项目 端口 作用
my-frontend 3000 用户看到的界面
my-backend 8080 提供数据和逻辑

开发时要同时运行两个终端:

  • 终端1:cd my-frontend && npm start
  • 终端2:cd my-backend && go run main.go

🧠 学习建议:
初期不要追求“一个命令启动全部”。分开管理更清晰,也更容易排查问题。


新手高频问题解答

Q1:为什么不用 TypeScript?

A:零基础先掌握 JavaScript 核心逻辑。TypeScript 是进阶工具,后面再加不迟。

Q2:Go 需要学很多语法吗?

A:不需要!本教程只用了结构体、HTTP 处理函数、JSON 编码,不到 20 行代码。Go 本身就是为“简单”设计的。

Q3:能不能把前后端合并?

A:可以,但不推荐初学者这么做。前后端分离是现代开发标准,早点适应更好。

Q4:部署怎么办?

A:前端用 Vercel(免费、拖拽上传),后端用 Render 或 Railway(Go 应用一键部署)。这些等你项目做完再说!


下一步学习路径建议

你已经完成了“从 0 到 1”的跨越!接下来可以:

  1. 前端深化

    • 学习 React 的 useStateuseEffect
    • 尝试用 axios 替代原生 fetch
    • 了解组件 props 传值
  2. 后端扩展

    • 在 Go 中连接数据库(推荐 SQLite,零配置)
    • 实现 POST 请求(提交表单)
    • 添加路由(用 gorilla/mux 库)
  3. 工程化

    • 学会用 .gitignore 忽略 node_modules
    • 用 GitHub 托管代码
    • 写 README 说明如何运行项目

🌟 最后一句真心话:
我见过太多人卡在“环境配置”就放弃了。但只要你跑通一次,后面的路会越走越顺。编程最难的不是技术,而是迈出第一步的勇气


附录:常用命令速查表

场景 命令
创建 React 项目 npx create-react-app 项目名
启动前端 npm start
启动 Go 服务 go run 文件名.go
查看 Node 版本 node -v
查看 Go 版本 go version
安装 Go 包 go get 包名(本教程未用到)

如果你跟着做完了,恭喜你!你已经比 80% 只看不练的人走得更远。
欢迎在评论区留言你的运行结果,或者遇到的卡点——我会一一回复。

下期预告:《用 Go + React 实现一个待办事项 TodoList》。
记得关注我,前端路上不迷路!

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝