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

news/2024/4/27 20:10:55/文章来源:https://blog.csdn.net/weixin_34389926/article/details/88905250

5se7en.com

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

github项目地址: https://github.com/se7en-1992...
项目线上地址: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启动的该文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_809873.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ogc是一个非营利性组织_重新设计非盈利性咨询网站的案例研究

ogc是一个非营利性组织Borago Insights is a London-based consultancy helping charities make sense of their data. Their founder, Emma Haslam, hired me to redesign their website. After rebranding her agency, she wanted to modernise the overall look of her webs…

2019网页设计趋势_4种网页设计趋势可以帮助改善您的网站

2019网页设计趋势重点 (Top highlight)It doesn’t look like this whole website thing is a fad. In fact, I think it might be here to stay! So with that in mind, I’d like to explore how you can get a little extra value out of your website in 2020.看起来整个网…

soup ui使用指南_如何为D2C网站现代化ui快速指南

soup ui使用指南In the past decade, we’ve seen a big shift in global consumerism, as witnessed in the acute rise of online shopping as a preferred method to the traditional brick and mortar ones due to the convenience it offers. Nowadays, when prospective …

如何使用AI轻松构建您的网站

如何使用AI轻松构建您的网站 如果你希望你的企业在现代世界取得成功,你将不得不长时间思考如何建立你的在线业务。 你应该做的第一件事就是把自己放在你试图赢得胜利的客户的鞋子里。问问自己:他们要看的第一个地方在哪里? 你猜对了 – 谷歌。…

cnn 分层 可视化 网站_如何可视化分层数据以显示整体关系

cnn 分层 可视化 网站重点 (Top highlight)I worked on infographics for one chapter of UNDERSTANDING USA, a TED conference textbook back in the year 2000. So why talk about infographics from such an old book now?早在2000年,我就为UNDERSTANDING USA …

facebook 五维设计_重新设计Facebook网站的入职和菜单

facebook 五维设计Founded in 2004, Facebook has become the biggest social networking service based on global reach. It has almost 2.5 billion monthly active users as of the fourth quarter of 2019 (Facebook statistics). No wonder that Facebook continues to m…

代码创建布局_自网站创建以来网站布局发生变化的9种方式

代码创建布局Website layouts change all the time, and there are more ways than ever to style a layout, with many frameworks available to help simplify the code, whilst keeping sites looking fancy.网站布局一直在变化,并且有比以往更多的方式来设计布局…

用树莓派构建一台服务器,永久运行网站

点击上方“阿拉奇学Java”,选择“置顶或者星标”优质文章第一时间送达!推荐阅读 |微服务 2.0 技术栈选型手册No.1前言由于本人在这段时候,看到了一个叫做树莓派的东东,初步了解之后觉得很有意思,于是想把整个过程记录下…

建议收藏:2020年,给你8个程序员接私活的网站

点击上方“阿拉奇学Java”,选择“置顶或者星标”每天早晨07点28分, 与你相约!推荐阅读 | 一个退休程序员,用高中几何方法,让百年数学难题逼近极限2019互联网圈不好混,不是每个公司都能像腾讯云每人一部iPhone 11&…

别总写代码,这 130个网站比涨工资都重要

点击上方“阿拉奇学Java”,选择“置顶或者星标”每天早晨00点00分, 与你相约!往日回顾:干货| 今日头条、抖音推荐算法原理全文详解!搞学习知乎:www.zhihu.comTED(最优质的演讲):http…

jwt单点登录_了解前端,爱上前端 | 网站各种登录方式对比

传统网页登录最简单的登录方式,是在每一次使用系统的时候进行身份的鉴定,一旦认证信息过期了,便跳出登录界面,让用户输入用户名和密码。将用户名和密码通过加密处理后,发到后端进行登录认证。后端会依据此次会话的时间…

这么多编程学习网站,总有一个适合你吧

点击上方“阿拉奇学Java”,选择“置顶或者星标” 每天早晨00点00分,与你相约!往日回顾:Java 处理 Exception 的 9 个最佳实践,你做对了吗?前 言今天分享几个适用于编程开发自学的学习网站,主要涉及编程学习…

近期你已经授权登录过_原来你的qq授权登录过这么多的网站 一键查出撤销了吧...

现在好多网站都支持社交账号登录,而我每次习惯直接点击QQ的一键登录,然后QQ就会提示授权给该网站,时间一长,根本不记得自己的QQ账号究竟注册过哪些网站了。而且有些网站还会时不时的给你推送一些消息,很是烦人&#xf…

用 Nginx 禁止国外 IP 访问我的网站..

来源:toutiao.com/i6860736292339057156/先来说说为啥要写这篇文章,之前看了下 Nginx 的访问日志,发现每天有好多国外的 IP 地址来访问我的网站,并且访问的内容基本上都是恶意的。因此我决定禁止国外 IP 来访问我的网站。想要实现…

怎样给一个php网站搬家

PHP网站分为网站程序和数据库两部分,因此搬家时要分2部分考虑:一是程序,二是数据。 程序部分: 比如旧空间是discuz3.4版本,那么新空间也要安装一个全新的discuz3.4版本。注意版本要一致,后期导入数据库才不…

洛奇英雄传老福单机版服务器不显示,洛奇英雄传:永恒官方网站-这一次让经典成为永恒...

公会教学:玩法套路全领悟2017年02月27日今天跟大家分享下《洛英:永恒》的公会玩法,一个决定了在游戏里是当一个万人敬仰的大佬还是一条躺尸的咸鱼的玩法。小伙伴们等级到达十一级之后,游戏就会开启公会玩法了。此时大家会面临两个…

基于django的视频点播网站开发-step14-数据总览功能

数据总览功能,是对网站中产生的数据进行一个统计,统计出视频数、发布数、用户数、评论数,等等。让管理者对网站数据有一个清晰的认识,做到心中有数。 在本站中,笔者一共列举了下面几种数据:视频数、发布中未…

小浩算法网站上线啦!

小浩算法的配套学习网站上线了,虽然还很简陋,虽然内容还没有完全整编进去,虽然还没对每道题目都加上各语言的代码。但是,我还是让它上线啦。http://www.geekxh.com这不是我第一次做网站了,好多年前就用 WordPress 搭建…

全宇宙著名网站中使用的编程语言

为什么80%的码农都做不了架构师?>>> 全宇宙最流行也就是访问巨大的网站有个共同之处,那就是动态的网站。下面看看这些宇宙之最网站所使用的编程语言: 转载于:https://my.oschina.net/766/blog/211248

如何制作出吸引潜在用户的网站?

我们都知道企业建网站目的得到更多的潜在用户,那么现在建出企业需求的、吸引潜在用户的网站呢? 下面搜客建站就来和大家说说:如何制作出吸引潜在用户的网站? 一、网站页面的风格设计 设计网站就好比我们平时评论一个女人美不美…