深入浅析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 相关文章推荐
js同时按下两个方向键
Dec 01 Javascript
点击弹出层效果&amp;弹出窗口后网页背景变暗效果的实现代码
Feb 10 Javascript
zepto.js中tap事件阻止冒泡的实现方法
Feb 12 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
jQuery插件zTree实现的基本树与节点获取操作示例
Mar 08 Javascript
详解vue项目的构建,打包,发布全过程
Nov 23 Javascript
详解webpack提取第三方库的正确姿势
Dec 22 Javascript
node实现分片下载的示例代码
Oct 17 Javascript
vue指令做滚动加载和监听等
May 26 Javascript
vue语法自动转typescript(解放双手)
Sep 18 Javascript
Vue中ref和$refs的介绍以及使用方法示例
Jan 11 Vue.js
详解vue之自行实现派发与广播(dispatch与broadcast)
Jan 19 Vue.js
用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/10/19 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
使用JavaScript库还是自己写代码?
2010/01/28 Javascript
jquery插件之easing 动态菜单
2010/08/21 Javascript
基于Jquery插件开发之图片放大镜效果(仿淘宝)
2011/11/19 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
JQuery分屏指示器图片轮换效果实例
2015/05/21 Javascript
详解Document.Cookie
2015/12/25 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
ThinkJS中如何使用MongoDB的CURD操作
2016/12/13 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
vue+springboot图片上传和显示的示例代码
2020/02/14 Javascript
Python实现拼接多张图片的方法
2014/12/01 Python
深入剖析Python的爬虫框架Scrapy的结构与运作流程
2016/01/20 Python
Python教程之全局变量用法
2016/06/27 Python
python如何在终端里面显示一张图片
2016/08/17 Python
Python获取二维矩阵每列最大值的方法
2018/04/03 Python
解决python matplotlib imshow无法显示的问题
2018/05/24 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
python单例模式实例解析
2018/08/28 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
python目标检测给图画框,bbox画到图上并保存案例
2020/03/10 Python
Ray-Ban雷朋美国官网:全球领先的太阳眼镜品牌
2016/07/20 全球购物
肯尼亚网上商城:Kilimall
2016/08/20 全球购物
百丽国际旗下购物网站:优购
2017/02/28 全球购物
夏威夷灵感服装及配饰:Reyn Spooner
2018/09/18 全球购物
当当网软件测试笔试题
2015/11/24 面试题
实习医生自我评价
2013/09/22 职场文书
邓小平理论心得体会
2014/09/09 职场文书
2014年电工工作总结
2014/11/20 职场文书
领导干部学习心得体会
2016/01/23 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL