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弹出层插件简化版代码下载
Oct 16 Javascript
JavaScript 创建对象和构造类实现代码
Jul 30 Javascript
商城常用滚动的焦点图效果代码简单实用
Mar 28 Javascript
JS小游戏之极速快跑源码详解
Sep 25 Javascript
Javascript中arguments和arguments.callee的区别浅析
Apr 24 Javascript
javascript实现的登陆遮罩效果汇总
Nov 09 Javascript
JavaScript+html5 canvas绘制的圆弧荡秋千效果完整实例
Jan 26 Javascript
JS实现全屏的四种写法
Dec 30 Javascript
微信小程序 跳转传递数据的实例
Jul 06 Javascript
在vue组件中使用axios的方法
Mar 16 Javascript
js的对象与函数详解
Jan 21 Javascript
vue实现简单数据双向绑定
Apr 28 Vue.js
微信小程序录音与播放录音功能
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 字符串 小常识
2009/06/05 PHP
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
2016/09/23 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
2017/05/02 PHP
jQuery之end()和pushStack()使用介绍
2012/02/07 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
JavaScript实现点击按钮切换网页背景色的方法
2015/10/17 Javascript
js改变透明度实现轮播图的算法
2020/08/24 Javascript
利用Angularjs实现幻灯片效果
2016/09/07 Javascript
Express+Nodejs 下的登录拦截实现代码
2017/07/01 NodeJs
vue.js select下拉框绑定和取值方法
2018/03/03 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
javascript对HTML字符转义与反转义
2018/12/13 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
layui 对table中的数据进行转义的实例
2019/09/12 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
js实现扫雷源代码
2020/11/27 Javascript
python抓取文件夹的所有文件
2018/02/27 Python
解决python3中解压zip文件是文件名乱码的问题
2018/03/22 Python
jupyter notebook 使用过程中python莫名崩溃的原因及解决方式
2020/04/10 Python
Python实现电视里的5毛特效实例代码详解
2020/05/15 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
企业新年寄语
2014/04/04 职场文书
建材投资建议书
2014/05/16 职场文书
中华美德颂演讲稿
2014/05/20 职场文书
开展批评与自我批评发言材料
2014/10/17 职场文书
2014年小学工作总结
2014/11/26 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
《金钱的魔力》教学反思
2016/02/20 职场文书
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang
Spring Boot 的创建和运行示例代码详解
2022/07/23 Java/Android