5se7en.com

nuxtjs+express+vue2.0+vuex搭建的服务端渲染个人网站项目.
github项目地址: https://github.com/se7en-1992/5se7en.com 项目线上地址:https://5se7en.com/

注意事项

  • node>=v8.0.0+ (nuxt1.0.0以上版本的node版本号必须大于v8.0.0否则启动的时候会报错)
  • 若要测试游戏登录请点击前往套马游戏注册一个账号

技术选型

这里先说两句题外话,谈一谈对前端开发产生了深远影响的两个时间点

  • ajax的出现,促成了Web 2.0时代的来临
  • nodejs的出现,让前端能做的更多,让js不仅仅只是浏览器端的语言。 这里为什么要说这个呢,有些前端开发者会说node不是做后端的吗?我为什么要学nodejs呢?其实随着前端的发展,尤其是node出现,前端发展日新月异,各种自动化工具,框架层出不穷。很多都是依赖node。node不仅仅只是用来拿来写后端,可以这么说,当前时间如果你对node毫无知晓,也不去学的话,那么你已经被前端浪潮所覆盖了。
  • 本项目用的是node中使用最多的express前端web框架,官网的demo是这么形容的=> ExpressJS + Nuxt.js = ⚡️ 没错可以说是非常极速了,我的个人网站服务器是阿里云1核1g学生版机,网站除了第一次打开稍微慢点,后面可以说得上是光速了。比我以前使用的任何框架都要极速。
  • 下面再谈一下为什么要使用服务端渲染和选用nuxtjs?
    • 知乎上有个论题大家可以看一看为什么现在又流行服务端渲染html?,回答的人比较多,也比较杂,我这里就简单的总结一下

      • 服务端渲染,主要解决两个痛点 SEO优化(一些新闻资讯类的网站都需要做一些搜索引擎优化)和大型应用的首屏渲染(解决一些大型应用首页加载速度问题)
      • 其实这又要谈到历史了,一开始html就是后端渲染的,前端实际上就是在切图(CSS)和做特效(JS),所以所有程序员中前端工资最低,职位也最低。所以前后端的鄙视链就出现了。
      • nodejs 和前端 mvc 的兴起让前端变得复杂起来,前端发现翻身的机会,于是全力支持这两种技术,造成本不该做成 spa 的网站也成了 spa。慢慢地前后端分离运动从大公司开始兴起,目的就是前端脱离后端的指指点点,独立发展。(表面上是为了「代码分离」,实际上是为了「人员分离」,也就是「前后端分家」,前端不再附属于后端团队)
      • spa 之后发现 seo 问题很大,而且首屏渲染速度贼慢,但是自己选的路再难走也要走下去,于是用 nodejs 在服务端渲染这一条路被看成是一条出路
      • 简而言之就是前端一开始骚不起来,后来node和MVC/MVVM(Vue,React,Angular)的出现前端开始骚起来了,搞独立,把本应要做成服务端渲染的东西也做成了SPA,现在新技术又出来了,要及时发现错误,进行改正。前后端分离是趋势,既然都分开了,总不能还让后端去渲染,那咱们前端自己想办法做服务端渲染吧,于是服务端渲染框架也就出现了。
    • 为什么选用nuxtjs?
      • 一开始我用的服务端渲染是学习N-blog利用nodejs的express+ejs模版渲染做的,效果其实也还不错,里面的代码并没有完全的组件化,我做的项目还使用的jQuery,这多low啊,那我怎么能忍,我肯定要换个技术来玩。(这里没有贬低jQuery的意思,我觉得jQuery是个很不错的JavaScript库,曾经也可以说是一统前端了,包括现在,不会用jQuery的前端基本上没几个,但是怎么说呢,jQuery在慢慢沉寂,操作dom在现在对比下来并不是一个最优的选择了。)前端在不断发展,我们要做的就是选择最优。
      • 在vue官网中也对nuxtjs做了强力的推荐,再加上nuxtjs的github上express模版demo介绍ExpressJS + Nuxt.js =⚡看到这个我就选了这个框架了。没错就是他了.
      • nuxtjs结合vue2、Webpack、vue-loader、babel-loader、vuex、Vue-Meta
      • 不需要在配置繁琐的webpack配置,vue-loader自动生成路由,只需要在pages目录下创建文件就是自动生成对应的路由文件

开发环境

  • Node.js: ^8.9.4
  • express: ^4.16.2
  • nuxtjs: ^1.0.0-rc11
  • vue: ^2.5.3
npm install
npm run dev
复制代码

使用浏览器打开 http://localhost:5757

友情提示

  • N-blog(一个不错的Nodejs + Express + MongoDB入门项目)
  • vue2.0官网文档
  • nuxtjs官方文档
  • vue2-elm(一个不错的vue2.0个人项目)
  • nuxtjs.org

nuxt介绍

  • nuxt详细的入门教程这里不做详细的介绍,官方文档讲解的已经非常详细了。这里简单介绍一下项目目录作用

nuxt目录介绍

  • assets

    • 如果你的静态资源文件需要 Webpack 做构建编译处理,可以放到 assets 目录,否则可以放到 static 目录中去。
    • Nuxt 服务器启动的时候,该目录下的文件会映射至应用的根路径 / 下,像 robots.txt 或 sitemap.xml 这种类型的文件就很适合放到 static 目录中。
  • components

    • 组件目录 components 用于组织应用的 Vue.js 组件。Nuxt.js 不会扩展增强该目录下 Vue.js 组件,即这些组件不会像页面组件那样有 asyncData 方法的特性。 简而言之此目录就是普通的vue组件目录。
  • layouts

    • 该目录名为Nuxt.js保留的,不可更改。
    • 你可以自定义合适自己网站的默认样式和错误样式
  • middleware

    • 中间件执行流程顺序:

      • nuxt.config.js
      • 匹配布局
      • 匹配页面
  • pages

    • 该目录名为Nuxt.js保留的,不可更改。
    • 页面目录 pages 用于组织应用的路由及视图。Nuxt.js 框架读取该目录下所有的 .vue 文件并自动生成对应的路由配置。
    • 此页面的.vue文件都具有asyncData、fech方法。
  • plugins

    • 插件目录 plugins 用于组织那些需要在 根vue.js应用 实例化之前需要运行的 Javascript 插件。
    • 我们可以将element-ui或者mint-ui以及其他更多的插件都可以放在plugins中使用
  • static

    • 该目录名为Nuxt.js保留的,不可更改。
    • 静态文件目录 static 用于存放应用的静态文件,此类文件不会被 Nuxt.js 调用 Webpack 进行构建编译处理。 服务器启动的时候,该目录下的文件会映射至应用的根路径 / 下。
  • store

    • 该目录名为Nuxt.js保留的,不可更改。
    • store 目录用于组织应用的 Vuex 状态树 文件。 Nuxt.js 框架集成了 Vuex 状态树 的相关功能配置,在 store 目录下创建一个 index.js 文件可激活这些配置。

nuxt配置介绍

  • config

    • 此目录并不是nuxt自身目录而是一些项目经验促使我添加此目录从来更加方便的去管理和使用在项目中所需要的变量。
    • NEWRELIC_KEY:newrelic的密钥,newrelic是服务器端性能监控的一款软件
    • TIMBER_KEY:timber的密钥,timber是一种云日志记录系统,简单的来说就是纪录线上的一些日志
    • SENTRY_PROJECT_ID/SENTRY_PUBLIC_KEY/SENTRY_PRIVATE_KEY:Sentry的项目id,公钥,私钥,Sentry是一个开源的实时错误报告工具
    • porductionProxy/developmentProxy: 是nuxt的axios模块代理请求的路径设置
    • 其实我在项目启动的时候还使用了pm2有express项目经验的人用过都说好,有日志记录状态监控等,真的很好用。
  • nuxt.config.js

  • .editorconfig

    • EditorConfig是一套用于统一代码格式的解决方案
  • .eslintrc.js

    • ESLint是一个应用广泛的 JavaScript 代码检查工具
  • gitignore

    • git提交忽略项配置文件
  • newrelic.js

    • newrelic配置文件
  • start.js

    • express启动入口文件,开发环境直接使用nuxt启动并没有走start.js,生产环境用pm2启动的该文件

转载于:https://juejin.im/post/5aa0c95f518825558358c920

nuxtjs+express+vue2+vuex搭建的服务端渲染(SSR)个人网站项目相关推荐

  1. nuxtjs+express+vue2+vuex搭建的服务端渲染(SSR)个人网站项目 1

    5se7en.com nuxtjs+express+vue2.0+vuex搭建的服务端渲染个人网站项目. github项目地址: https://github.com/se7en-1992... 项目 ...

  2. 使用Node搭建reactSSR服务端渲染架构

    如题:本文所讲架构主要用到技术栈有:Node, Express, React, Mobx, webpack4, ES6, ES7, axios, ejs,  log4js, scss,echarts, ...

  3. vue服务端渲染ssr

    vue服务端渲染ssr 一.SSR概念 传统web渲染技术 SPA SSR 二.webpack+vue2的实现方式 1.创建工程 2.安装依赖 3.编写一个简单的SSR 4.完整的ssr 5.代码链接 ...

  4. SSR服务端渲染(nuxt重构项目)

    SSR服务端渲染(nuxt重构项目) 目的:优化SEO,提高网站权重 ,页面静态化,强化搜索引擎,提高首屏渲染速度 参考文档:https://zh.nuxtjs.org/guide/installat ...

  5. React + Koa 实现服务端渲染(SSR)

    ⚛️React是目前前端社区最流行的UI库之一,它的基于组件化的开发方式极大地提升了前端开发体验,React通过拆分一个大的应用至一个个小的组件,来使得我们的代码更加的可被重用,以及获得更好的可维护性 ...

  6. node+ejs实现服务端渲染SSR

    一.服务端渲染SSR 1.什么是客户端渲染和服务端渲染? 客户端渲染:客户端向服务端请求HTML页面,后端不返回完整的 HTML页面,浏览器解析HTML页面过程中如果遇到ajax数据请求,会向服务端请 ...

  7. 服务端渲染SSR的理解

    服务端渲染SSR的理解 SSR服务端渲染Server Side Render就是当进行请求时,页面上的内容是通过服务端渲染生成的,浏览器直接显示服务端返回的HTML即可. 客户端渲染CSR 通常在构建 ...

  8. 服务端渲染(SSR) 通用技术解决方案

    项目背景 服务端渲染(SSR) 通用技术解决方案的诞生来源于对 360搜索百科移动端项目的一次重构实践.而当时决定重构该项目的主要原因有以下几点: 1.  技术栈陈旧,熟悉.开发以及维护成本都较高 项 ...

  9. 服务端渲染SSR与客户端渲染

    文章目录 一.服务端渲染和客户端渲染的区别 服务端渲染(SSR -- server side render) 客户端渲染 二.使用服务端渲染(SSR)的利弊 优势 局限 三.实际应用 应用原则 举例 ...

  10. 浅谈服务端渲染(SSR) 与使用场景

    什么是SSR(服务端渲染)MUA? SSR是Server Side Render的缩写,简单来讲:服务端渲染 就是网页上面呈现的内容在服务器端就已经生成好了,当用户浏览网页时,服务器把这个在服务端生成 ...

最新文章

  1. [USACO08NOV]lites
  2. java8的函数指针
  3. python之路——内置函数和匿名函数
  4. java 字符查找 截断_java字符串常用操作(查找、截取、分割)
  5. windows10查看本机IP脚本
  6. Ubuntu中锐捷客户端的配置与使用
  7. 【回归预测-PNN分类】基于粒子群算法群优化概率神经网络算法实现空气质量评价预测附matlab代码
  8. setPositiveButton和setNegativeButton的区别
  9. echarts网络拓扑图动态流程图
  10. 十四、Nginx--rewrite规则
  11. final37另一种插值方法:在端点处插入相等的值
  12. 数据结构与算法(系列文章一)
  13. 空间数据可视化神器,Pydeck!
  14. 代表们的烦恼,骚扰电话终将被整治?
  15. Linux延时摄影软件,利用树莓派和官方摄像头实现延时摄影
  16. ubuntu安装和启动redis命令步骤及其配置文件redis.conf
  17. mw313r路由器怎么设置虚拟服务器,水星mw313r路由器手机怎么设置?
  18. Ubuntu下载磁力链接,torrent,迅雷链接
  19. LeetCode957. N天后的牢房
  20. 小学一年级语文考试试题【16、17】

热门文章

  1. Redis学习-1 NoSQL
  2. fiddler抓包后Jmeter实现登录接口
  3. python产生随机值-random模块
  4. Ruby学习笔记1 -- 基本语法和数据类型, Class
  5. FZU 1924——死锁——————【topo判环】
  6. C# Sql 触发器
  7. HTML中meta的作用
  8. vue-amap详细使用教程
  9. 怎样解决python dataframe loc,iloc循环处理速度很慢的问题
  10. Knockout v3.4.0 中文版教程-13-控制文本内容和外观-css绑定