深入浅析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 相关文章推荐
Javascript客户端脚本的设计和应用
Aug 21 Javascript
JQuery 操作Javascript对象和数组的工具函数小结
Jan 22 Javascript
Javascript之旅 对象的原型链之由来
Aug 25 Javascript
jquery获取tr中控件值并操作tr实现思路
Mar 27 Javascript
jQuery之Deferred对象详解
Sep 04 Javascript
关于JavaScript数组你所不知道的3件事
Aug 24 Javascript
原生js实现无缝轮播图效果
Jan 11 Javascript
详解html-webpack-plugin用法全解
Jan 22 Javascript
Vue Element 分组+多选+可搜索Select选择器实现示例
Jul 23 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
Sep 23 Javascript
jQuery实现鼠标拖动图片功能
Mar 04 jQuery
微信小程序中wxs文件的一些妙用分享
Feb 18 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
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
解析php mysql 事务处理回滚操作(附实例)
2013/08/05 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
Yii2 queue的队列使用详解
2019/07/19 PHP
Yii框架函数简单用法分析
2019/09/09 PHP
代码生成器 document.write()
2007/04/15 Javascript
Javascript玩转继承(二)
2014/05/08 Javascript
Node.js中对通用模块的封装方法
2014/06/06 Javascript
jquery制作select列表双向选择示例代码
2014/09/02 Javascript
更高效的使用JQuery 这里总结了8个小技巧
2016/04/13 Javascript
基于JS代码实现实时显示系统时间
2016/06/16 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
Express + Session 实现登录验证功能
2017/09/08 Javascript
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
在Vue项目中引入腾讯验证码服务的教程
2018/04/03 Javascript
vue实现通讯录功能
2018/07/14 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
[02:22]完美世界DOTA2联赛PWL S3 集锦第一期
2020/12/15 DOTA
python使用socket连接远程服务器的方法
2015/04/29 Python
python遍历数组的方法小结
2015/04/30 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
Django 过滤器汇总及自定义过滤器使用详解
2019/07/19 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
2019/08/13 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2019/08/23 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
python类中super() 的使用解析
2019/12/19 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
从QQtabBar看css命名规范BEM的详细介绍
2021/08/07 HTML / CSS
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏