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(二)事件机制(2)
Dec 06 Javascript
javascript 弹出层组件(升级版)
May 12 Javascript
javascript用户注册提示效果的简单实例
Aug 17 Javascript
最短的IE判断var ie=!-[1,]分析
May 28 Javascript
Javascript基础教程之while语句
Jan 18 Javascript
JS中改变this指向的方法(call和apply、bind)
Mar 26 Javascript
Jquery获取当前城市的天气信息
Aug 05 Javascript
详解angular2采用自定义指令(Directive)方式加载jquery插件
Feb 09 Javascript
Js中async/await的执行顺序详解
Sep 22 Javascript
JavaScript调用模式与this关键字绑定的关系
Apr 21 Javascript
javascript实现倒计时效果
Feb 17 Javascript
实例讲解JavaScript 计时事件
Jul 04 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实现的一个简单json rpc框架实例
2015/03/30 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
php 可变函数使用小结
2018/06/12 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
php实现将数组或对象写入到文件的方法小结【三种方法】
2020/04/22 PHP
javascript form 验证函数 弹出对话框形式
2009/06/23 Javascript
让浏览器非阻塞加载javascript的几种方法小结
2011/04/25 Javascript
javascript学习笔记(四) Number 数字类型
2012/06/19 Javascript
改变文件域的样式实现思路同时兼容ie、firefox
2013/10/23 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
js模拟C#中List的简单实例
2014/03/06 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
AngularJs bootstrap详解及示例代码
2016/09/01 Javascript
Vue.JS入门教程之处理表单
2016/12/01 Javascript
jquery实现百叶窗效果
2017/01/12 Javascript
基于jquery实现的tab选项卡功能示例【附源码下载】
2019/06/10 jQuery
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
[05:08]2014DOTA2国际邀请赛 Hao专访复仇的胜利很爽
2014/07/15 DOTA
用Python实现服务器中只重载被修改的进程的方法
2015/04/30 Python
安装dbus-python的简要教程
2015/05/05 Python
利用Tkinter(python3.6)实现一个简单计算器
2017/12/21 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
基于Python组装jmx并调用JMeter实现压力测试
2020/11/03 Python
python爬虫如何解决图片验证码
2021/02/14 Python
Java里面如何把一个Array数组转换成Collection, List
2013/07/26 面试题
应届生护士求职信
2013/11/01 职场文书
监理资料员岗位职责
2014/01/03 职场文书
环境卫生标语
2014/06/09 职场文书
中国梦演讲稿开场白
2014/08/28 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
Python深度学习之实现卷积神经网络
2021/06/05 Python
一文解答什么是MySQL的回表
2022/08/05 MySQL