深入浅析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 相关文章推荐
JQuery弹出炫丽对话框的同时让背景变灰色
May 22 Javascript
javascript变量声明实例分析
Apr 25 Javascript
Javascript中判断对象是否为空
Jun 10 Javascript
Bootstrap导航栏各元素操作方法(表单、按钮、文本)
Dec 28 Javascript
Javascript技术栈中的四种依赖注入小结
Feb 27 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
Bootstrap一款超好用的前端框架
Sep 25 Javascript
js调用设备摄像头的方法
Jul 19 Javascript
AngularJS $http post 传递参数数据的方法
Oct 09 Javascript
解决一个微信号同时支持多个环境网页授权问题
Aug 07 Javascript
js 动态校验开始结束时间的实现代码
May 25 Javascript
vue实现简单跑马灯效果
May 25 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 之入门篇
2006/12/04 PHP
在VS2008中编译MYSQL5.1.48的方法
2010/07/03 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
2011/05/02 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
javascript下arguments,caller,callee,call,apply示例及理解
2009/12/24 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
基于jQuery和CSS3制作响应式水平时间轴附源码下载
2015/12/20 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
js实现表单及时验证功能 用户信息立即验证
2016/09/13 Javascript
js学习笔记之事件处理模型
2016/10/31 Javascript
javascript九宫格图片随机打乱位置的实现方法
2017/03/15 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
vue element-ui之怎么封装一个自己的组件的详解
2019/05/20 Javascript
js使用cookie实现记住用户名功能示例
2019/06/13 Javascript
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
[02:30]DOTA2英雄基础教程 暗影恶魔
2013/12/17 DOTA
[01:16:37]【全国守擂赛】第三周决赛 Dark Knight vs. 一个弱队
2020/05/04 DOTA
对Python进行数据分析_关于Package的安装问题
2017/05/22 Python
解决pyinstaller打包exe文件出现命令窗口一闪而过的问题
2018/10/31 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
2019/01/05 Python
Python实现获取当前目录下文件名代码详解
2020/03/10 Python
django中ImageField的使用详解
2020/12/21 Python
html5定制表单_动力节点Java学院整理
2017/07/11 HTML / CSS
法国时尚品牌乐都特瑞士站:La Redoute瑞士
2016/09/05 全球购物
京东全球售:直邮香港,澳门,台湾,美国,澳大利亚等地区
2017/09/24 全球购物
高三毕业生自我鉴定
2013/12/20 职场文书
结婚喜宴家长答谢词
2014/01/15 职场文书
初中英语课后反思
2014/04/25 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
公司出纳岗位职责
2015/03/31 职场文书
公司庆典主持词
2015/07/04 职场文书
springboot中rabbitmq实现消息可靠性机制详解
2021/09/25 Java/Android