Vue.js通用应用框架-Nuxt.js的上手教程


Posted in Javascript onDecember 25, 2017

对于React,Vue构建的单页面应用老说,SEO是一个众所周知的问题。服务端渲染(SSR-server Side Render)是目前看来最好的解决办法。React应用有Next.js,对应Vue的解决方案就是Nuxt.js。

Vue.js通用应用框架-Nuxt.js的上手教程

1.简介

官网:https://nuxtjs.org/

GitHub:https://github.com/nuxt/nuxt.js

Nuxt.js 是什么?

Nuxt.js 是一个基于 Vue.js 的通用应用框架。

通过对客户端/服务端基础架构的抽象组织,Nuxt.js 主要关注的是应用的 UI渲染。

我们的目标是创建一个灵活的应用框架,你可以基于它初始化新项目的基础结构代码,或者在已有 Node.js 项目中使用 Nuxt.js。

Nuxt.js 预设了利用Vue.js开发服务端渲染的应用所需要的各种配置。

除此之外,我们还提供了一种命令叫:nuxt generate,为基于 Vue.js 的应用提供生成对应的静态站点的功能。

我们相信这个命令所提供的功能,是向开发集成各种微服务(microservices)的 Web 应用迈开的新一步。

作为框架,Nuxt.js 为 客户端/服务端 这种典型的应用架构模式提供了许多有用的特性,例如异步数据加载、中间件支持、布局支持等。

2.构建第一个Nuxt.js项目

推荐使用Nuxt提供的模板。假设你已经安装了vue-cli,如果没有安装请先执行npm install vue-cli -g来安装vue-cli。

$ vue init nuxt-community/starter-template <project-name>

进入到项目文件夹中安装依赖包。

cd <project-name>
npm install

启动项目。

npm run dev

打开浏览器,访问http://localhost:3000。就能看到Next渲染出来的页面了。

3.添加页面

新建完成的项目结构如下图所示:

Vue.js通用应用框架-Nuxt.js的上手教程

项目结构

Nuxt约定所有页面都放在pages文件夹下,Nuxt会根据目录结构自动生成对应的路由。

现在在pages下新建Vue文件test.vue,访问http://localhost:3000/test即可看到刚刚添加的页面。

4.引入第三方插件

通常情况下我们都需要引入第三方的插件,比如前段组件,日志等。
第一步当然是安装插件,此处以element-UI为例。

npm install element-ui

虽然下载了element-ui的包但是却不能像普通项目那样直接在Vue实例中import然后使用。Nuxt的内核项目都在.nuxt目录下,如果修改这下面的文件是不会生效的。因为每次编译都会重新生成文件,所以直接修改该项目文件是无效的。

Vue.js通用应用框架-Nuxt.js的上手教程

内核项目结构

虽然不能直接修改,但是Nuxt提供了特殊的方式引入第三方插件。

第一步,在pulgin文件夹下新建js文件element-ui.js。文件内容如下。

import Vue from 'vue'
import Element from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(Element)

第二步,修改nuxt.config.js。添加plugins属性。

/**
   * include third-party plugin
   */
  plugins: ['~plugins/element-ui'] // element-ui.js文件地址

重新编译之后,Nuxt会编译该第三方插件并使用。此时在任何一个Vue文件中都能使用该第三方插件。

5.静态资源文件

你可以把静态资源文件放到static文件夹下,然后就可以使用http://localhost:3000/<文件名>来访问静态资源文件。

Nuxt提供的功能还有很多,比如动态路由,ESLint代码检测。今天先介绍到这里,其他深入的用饭请参考官方网站。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
读jQuery之九 一些瑕疵说明
Jun 21 Javascript
jquery与js函数冲突的两种解决方法
Sep 09 Javascript
js定时器怎么写?就是在特定时间执行某段程序
Oct 11 Javascript
Jquery EasyUI中弹出确认对话框以及加载效果示例代码
Feb 13 Javascript
JavaScript中提前声明变量或函数例子
Nov 12 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
Feb 24 Javascript
JavaScript实现的伸展收缩型菜单代码
Oct 14 Javascript
Bootstrap零基础学习第一课之模板
Jul 18 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
详解angular2 控制视图的封装模式
Dec 27 Javascript
jquery将json转为数据字典的实例代码
Oct 11 jQuery
js利用拖放实现添加删除
Aug 27 Javascript
微信小程序录音与播放录音功能
Dec 25 #Javascript
利用vue + element实现表格分页和前端搜索的方法
Dec 25 #Javascript
VueRouter导航守卫用法详解
Dec 25 #Javascript
基于zTree树形菜单的使用实例
Dec 25 #Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
Dec 25 #jQuery
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
Dec 25 #Javascript
详解vue-cli之webpack3构建全面提速优化
Dec 25 #Javascript
You might like
php设计模式 Bridge (桥接模式)
2011/06/26 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
php字符串分割函数用法实例
2015/03/17 PHP
php实现指定字符串中查找子字符串的方法
2015/03/17 PHP
php实现XML和数组的相互转化功能示例
2017/02/08 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
javascript设计模式 接口介绍
2012/07/24 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
Jquery解析json数据详解
2013/12/26 Javascript
JavaScript中的原型和继承详解(图文)
2014/07/18 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
详解微信JS-SDK选择图片遇到的坑
2018/08/15 Javascript
JS实现倒计时图文效果
2018/11/17 Javascript
javascript设计模式 ? 原型模式原理与应用实例分析
2020/04/10 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
Js利用正则表达式去除字符串的中括号
2020/11/23 Javascript
python实现提取百度搜索结果的方法
2015/05/19 Python
Python正则表达式使用范例分享
2016/12/04 Python
python交互式图形编程实例(二)
2017/11/17 Python
宝塔面板成功部署Django项目流程(图文)
2020/06/22 Python
opencv 图像礼帽和图像黑帽的实现
2020/07/07 Python
python ssh 执行shell命令的示例
2020/09/29 Python
pytorch下的unsqueeze和squeeze的用法说明
2021/02/06 Python
兰蔻俄罗斯官方网站:Lancome俄罗斯
2019/12/09 全球购物
Nike意大利官网:Nike.com IT
2020/01/19 全球购物
总经理驾驶员岗位职责
2013/12/04 职场文书
低碳生活倡议书
2014/04/14 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
投标保密承诺书
2014/05/19 职场文书
实习单位意见
2015/06/04 职场文书
边城读书笔记
2015/06/29 职场文书
公司车队管理制度
2015/08/04 职场文书
优秀团员主要事迹范文
2015/11/05 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书