做了这么多年的vue开发,今天突然对底层原理有些含糊,脑子中一直在想,为什么我可以通过运行npm run serve就能够通过以本地ip+端口号去访问页面呢?
Vue.js 项目通过端口访问的实现原理主要是通过启动一个本地开发服务器来监听指定的端口,并在该端口上提供服务。以下是一般的实现流程:
-
使用开发服务器: 在开发环境中,Vue CLI 通常使用类似
webpack-dev-server
或者Vite
提供的开发服务器。这些开发服务器负责监听指定的端口,并在该端口上提供服务。 -
监听端口: 当你运行
npm run serve
或yarn serve
等命令时,Vue CLI 会启动一个本地开发服务器,该服务器默认监听在localhost
的某个端口上(通常是localhost:8080
)。 -
本地服务地址: 通过监听的端口,开发服务器会提供一个本地服务地址,你可以在浏览器中访问这个地址来预览你的 Vue.js 项目。默认情况下,该地址是
http://localhost:8080
。 -
浏览器访问: 你在浏览器中输入
http://localhost:8080
(或者是实际开发服务器的地址),浏览器会发送 HTTP 请求到这个地址。 -
DevServer 处理请求: 当请求到达开发服务器时,开发服务器(如 webpack-dev-server 或 Vite)会根据配置,处理这些请求。它可以处理 JavaScript、CSS、图片等静态资源的请求,并提供热重载、模块热替换等功能。
-
热重载和模块热替换: 开发服务器中的热重载和模块热替换功能使得在开发过程中,你可以实时地看到代码的变化而无需手动刷新浏览器。
总的来说,通过本地开发服务器监听指定的端口,实现了在本地预览和开发 Vue.js 项目的功能。这也是为什么在开发环境中,你可以通过端口访问 Vue.js 项目。在生产环境中,部署到服务器时,你可以使用类似 Nginx、Apache 等服务器,通过监听端口来提供服务,实现 Vue.js 项目的正常访问。