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 相关文章推荐
用Div仿showModalDialog模式菜单的效果的代码
Mar 05 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
Aug 24 Javascript
javascript中判断json的方法总结
Aug 27 Javascript
基于jQuery实现的菜单切换效果
Oct 16 Javascript
Javascript实现前端简单的路由实例
Sep 11 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
Oct 26 Javascript
jQuery实现三级联动效果
Mar 02 Javascript
ionic实现底部分享功能
May 11 Javascript
vue.js 左侧二级菜单显示与隐藏切换的实例代码
May 23 Javascript
JS实现随机生成10个手机号的方法示例
Dec 07 Javascript
JavaScript实现烟花绽放动画效果
Aug 04 Javascript
javascript数组includes、reduce的基本使用
Jul 02 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
Mysql中limit的用法方法详解与注意事项
2008/04/19 PHP
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
thinkphp命名空间用法实例详解
2015/12/30 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
Laravel框架路由设置与使用示例
2018/06/12 PHP
浅谈Laravel中的三种中间件的作用
2019/10/13 PHP
javascript实现动态模态绑定grid过程代码
2014/09/22 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
Node.js+ES6+dropload.js实现移动端下拉加载实例
2017/06/01 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
JS用最简单的方法实现四舍五入
2019/08/27 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
js将日期格式转换为YYYY-MM-DD HH:MM:SS
2020/09/18 Javascript
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
python实现简单http服务器功能
2018/09/17 Python
flask框架路由常用定义方式总结
2019/07/23 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
pandas的resample重采样的使用
2020/04/24 Python
Python实现一个优先级队列的方法
2020/07/31 Python
CSS3中伪元素::before和::after的用法示例
2017/09/18 HTML / CSS
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
如何查找网页漏洞
2016/06/22 面试题
大专生自荐信
2013/10/04 职场文书
《记承天寺夜游》教学反思
2014/02/16 职场文书
党员违纪检讨书
2014/02/18 职场文书
2014社区三八妇女节活动方案
2014/03/30 职场文书
开学典礼校长致辞
2015/07/29 职场文书
单位病假条范文
2015/08/17 职场文书
护士自荐信范文(2016推荐篇)
2016/01/28 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL
使用JS实现简易计算器
2021/06/14 Javascript