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 相关文章推荐
一个对于Array的简单扩展
Oct 03 Javascript
javascript 类方法定义还是有点区别
Apr 15 Javascript
javascript实现密码强度显示
Mar 18 Javascript
javascript实现自动填写表单实例简析
Dec 02 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 Javascript
浅谈javascript:两种注释,声明变量,定义函数
Sep 29 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
Oct 27 Javascript
vue组件watch属性实例讲解
Nov 07 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
Sep 13 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
May 16 Javascript
Preload基础使用方法详解
Feb 03 Javascript
jquery实现拖拽小方块效果
Dec 10 jQuery
微信小程序录音与播放录音功能
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中利用XML技术构造远程服务(上)
2006/10/09 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
php实现压缩合并js的方法【附demo源码下载】
2016/09/22 PHP
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
2017/06/13 PHP
详解PHP 7.4 中数组延展操作符语法知识点
2019/07/19 PHP
javascript学习随笔(使用window和frame)的技巧
2007/03/08 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
2013/08/25 Javascript
node.js中的fs.truncateSync方法使用说明
2014/12/15 Javascript
谈谈target=_new和_blank的不同之处
2016/10/25 Javascript
解决在vue+webpack开发中出现两个或多个菜单公用一个组件问题
2017/11/28 Javascript
vuex的简单使用教程
2018/02/02 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
微信小程序WebSocket实现聊天对话功能
2018/07/06 Javascript
Vue文件配置全局变量的实例
2018/09/06 Javascript
JavaScript的级联函数用法简单示例【链式调用】
2019/03/26 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
js实现计时器秒表功能
2019/12/16 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
2020/07/20 Javascript
js实现盒子移动动画效果
2020/08/09 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
python 运算符 供重载参考
2009/06/11 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
2016/07/12 Python
Python实现简单文本字符串处理的方法
2018/01/22 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
django框架实现一次性上传多个文件功能示例【批量上传】
2019/06/19 Python
Python创建或生成列表的操作方法
2019/06/19 Python
python多任务之协程的使用详解
2019/08/26 Python
python中sklearn的pipeline模块实例详解
2020/05/21 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
Python基于execjs运行js过程解析
2020/11/27 Python
企业治理工作自我评价
2013/09/26 职场文书
订货会邀请函
2015/01/31 职场文书
Python中常见的导入方式总结
2021/05/06 Python