Vue.js通用应用框架-Nuxt.js的上手教程
作者:魏永_Owen_Wei 时间:2024-04-28 10:54:31
对于React,Vue构建的单页面应用老说,SEO是一个众所周知的问题。服务端渲染(SSR-server Side Render)是目前看来最好的解决办法。React应用有Next.js,对应Vue的解决方案就是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.添加页面
新建完成的项目结构如下图所示:
项目结构
Nuxt约定所有页面都放在pages文件夹下,Nuxt会根据目录结构自动生成对应的路由。
现在在pages下新建Vue文件test.vue,访问http://localhost:3000/test即可看到刚刚添加的页面。
4.引入第三方插件
通常情况下我们都需要引入第三方的插件,比如前段组件,日志等。
第一步当然是安装插件,此处以element-UI为例。
npm install element-ui
虽然下载了element-ui的包但是却不能像普通项目那样直接在Vue实例中import然后使用。Nuxt的内核项目都在.nuxt目录下,如果修改这下面的文件是不会生效的。因为每次编译都会重新生成文件,所以直接修改该项目文件是无效的。
内核项目结构
虽然不能直接修改,但是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代码检测。今天先介绍到这里,其他深入的用饭请参考官方网站。
来源:https://www.jianshu.com/p/a30b9fff1852
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
一文教你快速生成MySQL数据库关系图
![](https://img.aspxhome.com/file/2023/4/104414_0s.jpg)
一起来了解mysql数据库
![](https://img.aspxhome.com/file/2023/4/121294_0s.png)
Python实现针对中文排序的方法
python tkinter实现屏保程序
SQL Server中Update的用法
Python必备技巧之字典(Dictionary)详解
![](https://img.aspxhome.com/file/2023/8/97248_0s.jpg)
MySQL远程无法连接的一些常见原因总结
![](https://img.aspxhome.com/file/2023/4/79144_0s.png)
Windows下MySQL详细安装过程及基本使用
![](https://img.aspxhome.com/file/2023/5/104435_0s.jpg)
javascript面向对象编程(二)
Python爬虫之获取心知天气API实时天气数据并弹窗提醒
![](https://img.aspxhome.com/file/2023/0/68870_0s.png)
解决pycharm的Python console不能调试当前程序的问题
python进行OpenCV实战之画图(直线、矩形、圆形)
![](https://img.aspxhome.com/file/2023/9/71569_0s.jpg)
如何用Matlab和Python读取Netcdf文件
![](https://img.aspxhome.com/file/2023/8/90448_0s.png)
ES6新语法Object.freeze和Object.seal基本使用
![](https://img.aspxhome.com/file/2023/5/136785_0s.gif)
在golang中操作mysql数据库的实现代码
PL/SQL 类型格式转换
Centos7安装 mysql5.6.29 shell脚本
请问能否在ASP中调用DLL
Python机器学习pytorch交叉熵损失函数的深刻理解
![](https://img.aspxhome.com/file/2023/3/103743_0s.png)