服务端渲染——初识基于Express+Nuxt.js的开发模式

前言
    在看完 Nuxt.js 官方文档后,在 GitHub 上找了几个项目,但是在解读项目目录结构的时候,我陷入了沉思…几乎 GitHub 上的几个比较火的 Nuxt.js 的项目都会有一个 server 或 api 的文件目录,里面的代码还是用 Express 的后端接口…那么 Nuxt.js 到底为什么会和 Express 一起结合使用?

一、 Express

    Express官网最精简的介绍即基于 Node.js 平台,快速、开放、极简的 Web 开发框架。简而言之,Express 就是一个基于 Node.js 的框架,并且是最受欢迎的 Node.js 框架。

二、 Nuxt.js

    Nuxt.js 是一个基于 Vue.js 的用于实现服务端渲染的框架,Nuxt.js 不仅仅只是集成了 Vue.js ,还相应的集成了 Vuex、Vue-Router、Vue-Meta 以及 Vue 服务端渲染。并且 Nuxt.js 还提供了多种创建项目的模板,例如:starter-template、express-template、typescript-template、adonuxt-template 等等(想了解更多模板可以去Nuxt.js社区查看,本次只解读express-template的方式创建Nuxt.js应用)

三、express-template

    初始化模板:

	vue init nuxt-community/express-template nuxt-express
	npm install

    项目目录结构:

	|—— api					         Node.js代码存放目录
	    |—— routes                   api接口代码文件目录
	  	    |—— users.js             api接口代码文件
		|—— index.js                 核心文件
	|—— assets                       用于放置未编译的静态资源如 LESS、SASS
		|—— css                        
	    |—— img
	|—— components                   普通组件目录
	    |—— Footer.vue
	|—— layouts                      布局文件目录
		|—— default.vue              默认布局(必须)
	    |—— error.vue               
	|—— pages                        路由组件目录
		|—— _id.vue                  路由组件文件(编译后会自动生成路由/:id)
	    |—— index.vue                路由组件文件(对应路由/)
	|—— plugins                      公共函数目录
	    |—— axios.js
	|—— static                       静态文件目录,该目录不会被webpack编译
	|—— .eslintrc.js       
	|—— .gitignore
	|—— nuxt.config.js               用于自定义配置,可以覆盖默认配置
	|—— package.json
	|—— README.md

需要注意的是,初始化的模板中没有store目录,需要自行创建,直接引入Vuex就行,因为NUXTJS已经集成了Vuex,不需要额外安装依赖。

    运行项目:

	npm run dev

在这里插入图片描述
    访问页面:

	http://localhost:3000/

    访问接口:

	http://localhost:3000/api/users/0

    通过上面的流程,可以很容易的看出,使用express-template的方式创建的SPA,可以实现把后端需要做的事放到前端来做,缩短了ajax请求和响应的时间。看上去很像传统的后端框架的MVC的模式,但是换个角度,传统的MVC的V可以仅仅是把网页当作模板输出,而express-template开发的是应用(请注意应用和网页的区别!


服务端渲染(总结)

优点:

  • 让SPA单页应用也具备SEO优化的能力,可以实现对页面的静态化托管
  • 减去了繁琐的webpack的配置
  • 对传统的单页应用进行了优化,例如根据路由组件自动生成相应的路由
  • 对于大型的项目,可以加快首屏的加载速度,减轻服务器的压力,提高友好性

缺点:(就不不列了…各有各的说法…附上一些链接大家可以参考一下)
https://www.zhihu.com/question/59578433
https://segmentfault.com/a/1190000012802572

### 如何配置虚拟机中的共享文件夹 #### 配置概述 为了实现主机与虚拟机之间的文件共享,在虚拟机内部需执行特定的配置操作。这不仅涉及获取虚拟机自身的IP地址以便确认网络连接状态[^1],还涉及到通过图形界面或命令行方式来识别并访问来自宿主机的共享资源。 #### 图形化方法验证共享文件夹的存在 对于某些环境而言,可以直接利用虚拟机内安装的操作系统的图形用户界面来进行初步检测。当启动虚拟机之后,可以通过浏览“我的电脑”这一类目去查找是否存在预期中的网络共享位置;如果未能发现相应的图标,则意味着可能还需要进一步的手动设置才能正常使用共享功能[^2]。 #### 命令行挂载共享文件夹(适用于Linux系统) 针对采用Linux作为客户操作系统的情况,可以借助终端指令完成更精确的控制。具体来说,使用`mount`命令配合专门用于处理VMware Tools所提供的FUSE模块参数能够有效地将位于`.host:/`路径下的共享目录映射到本地文件系统中的指定位置(如`/mnt/hgfs`),从而允许用户像对待常规磁盘分区一样对其进行读写操作。值得注意的是,此过程通常需要管理员权限,并且建议加上`allow_other`选项以放宽对其他用户的访问限制: ```bash sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other ``` 由于上述挂载动作不会持久保存,因此每当重启虚拟机后都需要重复执行该命令来恢复共享文件夹的功能[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值