深入浅析nuxt.js基于ssh的vue通用框架


Posted in Javascript onMay 21, 2019

Nuxt.js 是一个基于 Vue.js 的通用应用框架。 通过对客户端/服务端基础架构的抽象组织, Nuxt.js 主要关注的是应用的 UI渲染。

SSR ,即服务器渲染,就是在服务器端将对Vue页面进行渲染生成html文件,将html页面传递给浏览器。

Nuxt.js是特点(优点):

  • 基于 Vue.js
  • 自动代码分层
  • 服务端渲染
  • 强大的路由功能,支持异步数据
  • 静态文件服务
  • ES6/ES7 语法支持
  • 打包和压缩 JS 和 CSS
  • HTML头部标签管理
  • 本地开发支持热加载
  • 集成ESLint
  • 支持各种样式预处理器: SASS、LESS、 Stylus等等

vue-cli3如何安装?

yarn global add @vue/cli-init
npm init nuxt-app my-project // 初始化一个nuxt项目

深入浅析nuxt.js基于ssh的vue通用框架

目录结构

深入浅析nuxt.js基于ssh的vue通用框架

全局配置

配置全局样式nuxt.config.js

module.exports={
  css: ['@/assets/css/normailize.css'] // @别名,根目录 
}

配置全局标题和meta

在nuxt.config.js

head: {
  title: 'nuxt项目实战',
  meta: [
   {charset: 'utf-8'},
   {name: 'viewport', content: 'width=device-width, initial-scale=1'},
   {hid: 'description', name: 'description', content: pkg.description}
  ],
  link: [{rel: 'icon', type: 'image/x-icon', href: '/favicon.ico'}]
 },

配置全局动效

Nuxt.js 默认使用的过渡效果名称为 page 在全局样式文件 assets/css/main.css 这里假设是main.css里添加一下样式:

.page-enter-active,      //页面进入激活的效果和页面离开的动效
.page-leave-active {
 transition: opacity 1s;
}
.page-enter,         // 页面进入和页面离开激活的效果
.page-leave-active {
 opacity: 0;
}

配置页面单独的动画效果

在全局样式文件 assets/css/main.css 这里假设是main.css里添加一下样式: .后面加页面的单独属性,如test

.test-enter-active,
.test-leave-active {
 transition: all 1s;
 font-size: 12px;
}
.test-enter,
.test-leave-active {
 opacity: 0;
 font-size: 40px;
}

然后我们将页面组件中的 transition 属性的值设置为 test 即可:

export default {
 transition: 'test'
}

配置全局loading

module.exports = {
  loading: {color: '#fff'},
}

路由

要在页面之间使用路由,我们建议使用 标签。nuxt会自动在.nuxt生成router.js,用这个标签跟vue-router的使用基本一致。不需要额外引入vue-router,且根据我们的目录名称来处理的,不需要我们在router.js配置

基础路由

<nuxt-link :to="{name:'index'}">Home</nuxt-link> //可以根据to,path跳转,同样可以传参params,query
 <nuxt-link :to="{name:'about',query:{id:123}}">about</nuxt-link>

动态路由

在 Nuxt.js 里面定义带参数的动态路由,需要创建对应的以下划线作为前缀的 Vue 文件 或 目录。

pages/
--| news/
-----| _id.vue
-----| index.vue
在index.vue中要根据不同的id跳到新闻详情页,这里有2种跳转方式,通过path和name
<nuxt-link :to="{path:'/news/123'}">news-1</nuxt-link>
<nuxt-link :to="{name:'news-id',params:{newdetail:'fff'}}">news-32</nuxt-link>
在_id.vue中可以接收到参数{{$route.params.newdetail}}

路由参数效验

export default {
 validate ({ params,query}){
  // 必须是number类型
  return /^\d+$/.test(params.id)
 }
}

嵌套路由

创建内嵌子路由,你需要添加一个 Vue 文件,同时添加一个与该文件同名的目录用来存放子视图组件。

在父组件(.vue文件) 内增加 用于显示子视图内容

动态嵌套路由,不多见,原理一致

中间件

中间件允许您定义一个自定义函数运行在一个页面或一组页面渲染之前。每一个中间件应放置在 middleware/ 目录。文件名的名称将成为中间件名称(middleware/auth.js将成为 auth 中间件)。在 nuxt.config.js 、 layouts 或者 pages 中使用中间件: eg:在nuxt.config.js

module.exports = {
  router:{
  middleware: 'check-auth'
 }
}

总结

以上所述是小编给大家介绍的nuxt.js基于ssh的vue通用框架,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
鼠标滚轮控制网页横向移动实现思路
Mar 22 Javascript
jquery 删除cookie失效的解决方法
Nov 12 Javascript
jquery下div 的resize事件示例代码
Mar 09 Javascript
ie 7/8不支持trim的属性的解决方案
May 23 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
Oct 10 Javascript
javascript异步编程代码书写规范Promise学习笔记
Feb 11 Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 Javascript
1秒50万字!js实现关键词匹配
Aug 01 Javascript
JavaScript实现的数字与字符串转换功能示例
Aug 23 Javascript
koa2服务端使用jwt进行鉴权及路由权限分发的流程分析
Jul 22 Javascript
Vue通过WebSocket建立长连接的实现代码
Nov 05 Javascript
基于小程序请求接口wx.request封装的类axios请求
Jul 02 Javascript
用node.js写一个jenkins发版脚本
May 21 #Javascript
vue-router源码之history类的浅析
May 21 #Javascript
vue 地图可视化 maptalks 篇实例代码详解
May 21 #Javascript
vue 中使用 watch 出现了如下的报错的原因分析
May 21 #Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
May 21 #Javascript
vue+element创建动态的form表单及动态生成表格的行和列
May 20 #Javascript
Node 搭建一个静态资源服务器的实现
May 20 #Javascript
You might like
php自定义时间转换函数示例
2016/12/07 PHP
php表单习惯用的正则表达式
2017/10/11 PHP
Laravel 5.4.36中session没有保存成功问题的解决
2018/02/19 PHP
php微信公众号开发之翻页查询
2018/10/20 PHP
JavaScript 嵌套函数指向this对象错误的解决方法
2010/03/15 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
jQuery 插件封装的方法
2016/11/16 Javascript
基于JavaScript实现购物车功能
2017/02/07 Javascript
JS实现自定义状态栏动画文字效果示例
2017/10/12 Javascript
微信小程序的生命周期的详解
2017/10/19 Javascript
vue.js语法及常用指令
2017/10/29 Javascript
浅析Vue项目中使用keep-Alive步骤
2018/07/27 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
vue在路由中验证token是否存在的简单实现
2019/11/11 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
教你安装python Django(图文)
2013/11/04 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
Python 获取项目根路径的代码
2019/09/27 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
python对XML文件的操作实现代码
2020/03/27 Python
英国助听器购物网站:Hearing Direct
2018/08/21 全球购物
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
PHP面试题及答案一
2012/06/18 面试题
中学生学习生活的自我评价
2013/10/26 职场文书
入党申请人的自我鉴定
2013/12/01 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
python通过opencv调用摄像头操作实例分析
2021/06/07 Python
5行Python代码实现一键批量扣图
2021/06/29 Python
springboot临时文件存储目录配置方式
2021/07/01 Java/Android
十大最强火系宝可梦,喷火龙上榜,第一名有双火属性
2022/03/18 日漫
windows系统安装配置nginx环境
2022/06/28 Servers
基于redis+lua进行限流的方法
2022/07/23 Redis