Nuxt.js(一、介绍与安装)

1.为什么使用Nuxt

渐进式Vue.js框架给前后端分离带来无限的乐趣,越来越多的程序员选择Vue。在我们使用Vue框架的过程中不免会出现以下的一些问题:

  1. 如何更好的组合使用javascript和vue组件,使其有效地协同工作;
  2. 有没有一种统一的最佳实践文件结构可以让我们更好的管理应用的代码;
  3. 怎么处理SPA应用的SEO问题;
  4. 怎么加快某些重要页面的首屏时间;

一些有经验的程序员当然可以自己处理大部分问题,但是Nuxt.js为我们提供了平滑开箱即用,体验的更高层次解决方案。因为Nuxt.js是构建于Vue之上的,本质上并没有区别。

2.Nuxt.js的功能优点

  1. 从头开始构建生产就绪的Vue应用程序很繁琐

    nuxt.js智能集成了Vuex,Vue Router,Vue-meta等插件,并做好了相对完善的配置,省去了每次构建Vue项目都要做的一些重复工作

  2. vue项目构建的文件体系不足

    nuxt.js提供了统一标准完善的项目文件结构。vue项目构建默认只有assets与components文件,nuxt完善了这一结构,提供了pages,layouts,stors等文件结构,后面会详细介绍。并且统一的文件构架有助于快速的转移项目

  3. 在大型Vue应用程序中,路由配置篇幅可能会很长

    nuxt会自动为项目添加vue router,您只要将页面级vue组件放入pages文件中,nuxt会为您配置好相关路径配置

  4. 但是nuxt自动的配置并不代表它限制了自定义的配置

    如果你有不同于默认配置的设置,你可以加载nuxt.config.js里

  5. vue构建的项目对SEO十分不友好

    这时有两个方案,预渲染(Prerendering)和服务器端渲染(SSR),相对完美的方案是SSR。但是每个项目都去配置实现相关SSR相对复杂,Nuxt则帮我们解决了这一问题,让我们更容易的添加页面SEO tags

  6. 初始负载下的Vue应用程序可能很慢

    首屏渲染速度对很多项目是很重要的,nuxt的Universal(SSR)模式将使用Node.js服务器将基于Vue组件的HTML传递给客户端,提供更好的用户体验

  7. 当你有需求时,vue构建的项目在开发环境难以改变框架的一些行为

    Nuxt基于强大的模块化体系结构,以使您的开发更快,更轻松。

如您所见,Nuxt.js允许您在配置上花费更少的时间
有更多的时间来解决问题和构建出色的Vue应用程序。

3.构建一个Nuxt项目

条件:npm版本>5.2.0(使用yarn也是可以的)

1npx create-nuxt-app <my-project>(nuxt-app)
2//构建过程中您将选择一些配置,如果要做SSR请选择nuxt的Universal(SSR)模式

安装好项目依赖后

1cd nuxt-app
2npm run dev
3//您也可以导入到vue ui中运行,这样就不用输入命令行了

4.文件系统

vue项目初始化后只创建了一个components文件,但是我们不希望将页面级组件,公共组件以及其他的一些组件都放在一起,nuxt为我们构建了一个标准的更加完善的文件系统


可以看到nuxt项目中删除了src文件,所有的文件都在根文件下

1layouts文件可以存放一些布局容器:blog layout,home layout等
2paegs文件中存放页面级的vue组件,nuxt会自动为其构建route路径
3components文件中包含一些可复用的组件
4store文件是存放vuex文件的地方
5static文件存放静态资源,seo文案,favicon等
6assets文件存放的是未编译资源,如less,字体,images等
7plugins文件存放js插件,当使用自己的库或者vue插件时使用
8middleware文件存放允许您定义可以在一个页面渲染之前运行的自定义函数。
9nuxt.config.js是项目的配置文件,您将使用它来编写额外的配置,或者修改Nuxt默认为您的应用程序设置的配置。

5.自动创建路由

nuxt会自动为您构建路由,如果你的pages文件中创建了两个页面,分别是index.vue与about.vue,则你的router.js将如下:

1const router = new Router({
2    routes: [
3        {
4            path: '/',
5            component: 'pages/index.vue'
6        },
7        {
8            path: '/about',
9            component: 'pages/about.vue'
10        }
11    ]
12})



Nuxt 的介绍与安装的更多相关文章

  1. 从零自学Hadoop(19):HBase介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 上一篇, ...

  2. 从零自学Hadoop(14):Hive介绍及安装

    阅读目录 序 介绍 安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 序 本系列已 ...

  3. Python之路-python(mysql介绍和安装、pymysql、ORM sqlachemy)

    本节内容 1.数据库介绍 2.mysql管理 3.mysql数据类型 4.常用mysql命令 创建数据库 外键 增删改查表 5.事务 6.索引 7.python 操作mysql 8.ORM sqlac ...

  4. Bash on Windows 抢鲜测试 -- 介绍及安装

    前言 微软在上周的Windows BUILD大会上宣布,WIN10将引入原生Bash,并将很快在技术预览版中推出. 如此一来,windows的命令行工具就不再只有cmd和powershell了,我们可 ...

  5. Tyk API网关介绍及安装说明

    Tyk API网关介绍及安装说明 Tyk是一个开源的轻量级API网关程序. 什么是API网关 API网关是一个各类不同API的前置服务器.API网关封装了系统内部架构,对外提供统一服务.此外还可以实现 ...

  6. Python介绍、安装、使用

    Python介绍.安装.使用 搬运工:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Python语言介绍 说到Python语言,就不得不说一下它的创始人Guido van Rossu ...

  7. Redis介绍以及安装(Linux)

    Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...

  8. 自动化运维工具之 Ansible 介绍及安装使用

    一.初识Ansible 介绍: Absible 使用 模块(Modules)来定义配置任务.模块可以用标准脚本语言(Python,Bash,Ruby,等等)编写,这是一个很好的做法,使每个模块幂等.A ...

  9. 【兄弟连ThinkPHP】1、介绍和安装

    琢磨了好几天的ThinkPHP了,兄弟连的视频真心不错,下面是记得一些要点,只做备忘,有兴趣的朋友请去百度兄弟连. ## ThinkPHP 3 介绍及安装#讲师:赵桐正微博:http://weibo. ...

随机推荐

  1. spring事务详解(基于注解和声明的两种实现方式)

    Spring事务( Transaction ) 事务的概念 事务是一些sql语句的集合,作为一个整体执行,一起成功或者一起失败. 使用事务的时机 一个操作需要多天sql语句一起完成才能成功 程序中事务 ...

  2. 采用二进制文件方式安装loki和promtail

    1. 下载二进制文件 官方下载地址:https://github.com/grafana/loki/releases 下载如图所示的这俩文件,Grafana采用yum方式安装 cd /usr/loca ...

  3. MVCC多版本并发控制

    MVCC多版本并发控制 爱情小傻蛋关注 82019.09.28 23:23:37字数 4,740阅读 91,421 前提概要 什么是MVCC 什么是当前读和快照读? 当前读,快照读和MVCC的关系 M ...

  4. java 学习笔记(一)

    书 head first java 1. 2.加强版的FOR循环 3. 通过super引用父类 4.多态 5.接口和抽象类 接口 6.多线程锁 7.JDBC

  5. Java并发机制(5)--同步容器与并发容器

    Java并发编程:同步容器整理自:博客园-海子-http://www.cnblogs.com/dolphin0520/p/3933404.html1.同步容器出现原因 常用的ArrayList,Lin ...

  6. brew 安装redis

    转:https://www.jianshu.com/p/e1e5717049e8 编辑新安装php的 p.p1 { margin: 0; font: 11px Menlo; color: rgba(0 ...

  7. java-設計模式-原型模式

    原型模式 是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类. 問題: 如果我們要複製一個類實例: 首先, 你必须新建一个属于相同类的对象. 然后, 你必须遍历原始对象的所 ...

  8. java-iov概念

    Ioc-Inversion of Control 即"控制反转",不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象 ...

  9. Javascript Promises学习

    Promise对象的三个状态 pending(进行中) fulfilled(已成功) rejected(已失败) Promise代表一个异步操作,对象的状态一旦改变,就不会再改变 Promise构造函 ...

  10. Java基础学习之“二维数组”

    一.鄙人对二维数组的理解 二维数组就是由多个数组并列而成 二.举例 1.普通数组(一维数组)的图像格式 2.二维数组的图像格式 代码 1 @Test 2 public void xueXi(){ 3 ...