深入浅析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 相关文章推荐
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
Jan 07 Javascript
JS获取文本框,下拉框,单选框的值的简单实例
Feb 26 Javascript
javascript字符串替换函数如何一次性全部替换掉
Oct 30 Javascript
Javascript中的几种继承方式对比分析
Mar 22 Javascript
老生常谈的跨域处理
Jan 11 Javascript
JS正则获取HTML元素的方法
Mar 31 Javascript
layui分页效果实现代码
May 19 Javascript
浅谈 vue 中的 watcher
Dec 04 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
Jun 18 jQuery
vue keep-alive列表页缓存 详情页返回上一页不刷新,定位到之前位置
Nov 26 Javascript
jQuery实现简单全选框
Sep 13 jQuery
解决ant design vue 表格a-table二次封装,slots渲染的问题
Oct 28 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/07/04 PHP
php获得刚插入数据的id 的几种方法总结
2018/05/31 PHP
PHP中抽象类,接口功能、定义方法示例
2019/02/26 PHP
一些技巧性实用js代码小结
2009/10/14 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
Javascript setInterval的两种调用方法(实例讲解)
2013/11/29 Javascript
jQuery如何取id有.的值一般的方法是取不到的
2014/04/18 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
JS实现Ajax的方法分析
2016/12/20 Javascript
详解基于mpvue的小程序markdown适配解决方案
2018/05/08 Javascript
JavaScript设计模式之工厂模式简单实例教程
2018/07/03 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
Node.js JSON模块用法实例分析
2019/01/04 Javascript
ES6知识点整理之函数数组参数的默认值及其解构应用示例
2019/04/17 Javascript
关于vue项目中搜索节流的实现代码
2019/09/17 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
Python-opencv 双线性插值实例
2020/01/17 Python
利用python画出AUC曲线的实例
2020/02/28 Python
导致python中import错误的原因是什么
2020/07/01 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
微软开源最强Python自动化神器Playwright(不用写一行代码)
2021/01/05 Python
ET Mall东森购物网:东森严选
2017/03/06 全球购物
车间工艺员岗位职责
2013/12/09 职场文书
校运会入场式解说词
2014/02/10 职场文书
领导班子四风表现材料
2014/08/23 职场文书
综治维稳工作承诺书
2014/08/30 职场文书
个人遵守党的政治纪律情况对照检查材料思想汇报
2014/09/25 职场文书
2015年餐厅服务员工作总结
2015/04/23 职场文书
redis限流的实际应用
2021/04/24 Redis
Python可视化学习之matplotlib内置单颜色
2022/02/24 Python