深入浅析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活用事件触发对象动作
Aug 10 Javascript
jquery判断浏览器后退时候弹出消息的方法
Aug 11 Javascript
JS中取二维数组中最大值的方法汇总
Apr 17 Javascript
js中less常用的方法小结
Aug 09 Javascript
node vue项目开发之前后端分离实战记录
Dec 13 Javascript
对layui中表单元素的使用详解
Aug 15 Javascript
JS实现盒子跟着鼠标移动及键盘方向键控制盒子移动效果示例
Jan 29 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
Feb 18 jQuery
Moment.js实现多个同时倒计时
Aug 26 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
Oct 11 Javascript
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 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在数组中查找指定值的方法
2015/03/17 PHP
浅析php设计模式之数据对象映射模式
2016/03/03 PHP
PHP使用mysqli同时执行多条sql查询语句的实例
2019/03/22 PHP
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
2010/05/25 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
jQuery ajaxSubmit 实现ajax提交表单局部刷新
2016/07/04 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
JS批量替换内容中关键词为超链接
2017/02/20 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
2019/07/23 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
JS自定义右键菜单实现代码解析
2020/07/16 Javascript
Vue如何跨组件传递Slot的实现
2020/12/14 Vue.js
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
遗传算法python版
2018/03/19 Python
解决Django的request.POST获取不到内容的问题
2018/05/28 Python
详解Django中六个常用的自定义装饰器
2018/07/04 Python
python创造虚拟环境方法总结
2019/03/04 Python
matplotlib实现显示伪彩色图像及色度条
2019/12/07 Python
使用python计算三角形的斜边例子
2020/04/15 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
python程序需要编译吗
2020/06/19 Python
iframe跨域的几种常用方法
2019/11/11 HTML / CSS
Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码
2020/03/17 HTML / CSS
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
LN-CC英国:伦敦时尚生活的缩影
2019/09/01 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
教育科学研究生自荐信
2013/10/09 职场文书
年终自我鉴定
2013/10/09 职场文书
《一株紫丁香》教学反思
2014/02/19 职场文书
希特勒的演讲稿
2014/05/23 职场文书
化工生产实习心得体会
2016/01/22 职场文书
PHP中多字节字符串操作实例详解
2021/08/23 PHP