时间:2021-05-26
路由的动画效果,也叫作页面的更换效果。Nuxt.js提动两种方法为路由提动动画效果,一种是全局的,一种是针对单独页面制作。
全局路由动画
全局动画默认使用page进行设置,例如现在我们为每个页面都设置一个进入和退出时的渐隐渐现的效果。我们可以先在根目录的assets/css下建立一个main.css文件。
/assets/css/main.css
.page-enter-active,.page-leave-active{ transition: opacity 2s;}.page-enter,.page-leave-active{ opacity: 0;}然后在nuxt.config.js里加入一个全局的css文件就可以了。
module.exports = { /* ** Headers of the page */ head: { title: 'delnuxt', meta: [ { charset: 'utf-8' }, { name: 'viewport', content: 'width=device-width, initial-scale=1' }, { hid: 'description', name: 'description', content: 'Nuxt.js project' } ], link: [ { rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' } ], }, css:['~assets/css/normailze.css','~assets/css/main.css'], /* ** Customize the progress bar color */ loading: { color: '#3B8070' }, /* ** Build configuration */ build: { /* ** Run ESLint on save */ extend (config, { isDev, isClient }) { if (isDev && isClient) { config.module.rules.push({ enforce: 'pre', test: /\.(js|vue)$/, loader: 'eslint-loader', exclude: /(node_modules)/ }) } } }}这时候在页面切换的时候就会有2秒钟的动画效果了,但是你会发现一些页面时没有效果,这是因为你没有使用<nuxt-link>组件来制作跳转链接。你需要进更改。
比如改成如下:
<nuxt-link :to="{name:'news',params:{newsId:3306}}">NEWS</nuxt-link>
改过之后你就会看到有动画效果了。
单独设置页面动效
想给一个页面单独设置特殊的效果时,我们只要在css里改变默认的page,然后在页面组件的配置中加入transition字段即可。例如,我们想给about页面加入一个字体放大然后缩小的效果,其它页面没有这个效果。
在全局样式assets/main.css中添加以下内容。
.test-enter-active,.test-leave-active{ transition: all 2s; font-size: 12px;}.test-enter,.test-leave-active{ opacity: 0; font-size: 40px;}然后在about/index.vue组件中设置
<script>export default { transition:'test'}</script>补充知识:vue-ssr框架nuxt填坑
Nuxt.js 1.0.0 初始化与依赖包安装
vue init nuxt/started
npm install
npm run dev
npm run dev 报错
> nuxt-temp@1.0.0 dev E:\MaYunProject\nuxt-temp> nuxtE:\MaYunProject\nuxt-temp\node_modules\nuxt\dist\nuxt.js:79async function promiseFinally(fn, finalFn) { ^^^^^^^^SyntaxError: Unexpected token function at createScript (vm.js:56:10) at Object.runInThisContext (vm.js:97:10) at Module._compile (module.js:542:28) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object.<anonymous> (E:\MaYunProject\nuxt-temp\node_modules\nuxt\index.js:17:20)npm ERR! Windows_NT 10.0.14393npm ERR! argv "G:\\node\\node.exe" "G:\\node\\node_modules\\npm\\bin\\npm-cli.js" "run" "dev"npm ERR! node v6.11.4npm ERR! npm v3.10.10npm ERR! code ELIFECYCLEnpm ERR! nuxt-temp@1.0.0 dev: `nuxt`npm ERR! Exit status 1npm ERR!npm ERR! Failed at the nuxt-temp@1.0.0 dev script 'nuxt'.npm ERR! Make sure you have the latest version of node.js and npm installed.npm ERR! If you do, this is most likely a problem with the nuxt-temp package,npm ERR! not with npm itself.npm ERR! Tell the author that this fails on your system:npm ERR! nuxtnpm ERR! You can get information on how to open an issue for this project with:npm ERR! npm bugs nuxt-tempnpm ERR! Or if that isn't available, you can get their info via:npm ERR! npm owner ls nuxt-tempnpm ERR! There is likely additional logging output above.npm ERR! Please include the following file with any support request:npm ERR! E:\MaYunProject\nuxt-temp\npm-debug.log解决错误
将node 升级到 node8.12.0
升级到nuxt-edge Nuxt.js 2.0
1、运行 npm run dev报错
ERROR Failed to compile with 1 errors Module build failed (from ./node_modules/eslint-loader/index.js): TypeError: Cannot read property 'eslint' of undefined at Object.module.exports (.../node_modules/eslint-loader/index.js:148:18) You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use to ignore all warnings in a file.2、修正错误:编辑nuxt.conf.js文件并将其更改为
- module.exports = { + export default { // ... build: { /* ** Run ESLint on save */ - extend (config, { isDev, isClient }) { - if (isDev && isClient) { + extend (config, { isDev }) { + if (isDev && process.client) { config.module.rules.push({ enforce: 'pre', test: /\.(js|vue)$/, loader: 'eslint-loader', exclude: /(node_modules)/ }) } } } }3、 重启服务,打开浏览器并访问:http://localhost:3000/。
以上这篇Nuxt的路由动画效果案例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Nuxt.js依据pages目录结构自动生成vue-router模块的路由配置。要在页面之间使用路由,我们建议使用标签。正文对我来说,Nuxt是我所用过最好用的
Nuxt嵌套路由官网上的API详解:点击链接看了官网上的api实现了官网的案例你会发现访问父页面中只能显示父页面中的内容,要想默认的在区域显示一个页面内容怎么办
方式一|通过嵌套路由实现在pages页面根据nuxt的路由规则,建立页面1.创建文件目录及文件根据规则,如果要创建子路由,子路由的文件夹名字,必须和父路由名字相
恩,经过朋友的帮助搞定的,因为nuxt资料比较少的原因,很感谢“包子”的帮助注意本案例只是把你通用的比如$colour:#009688#5FB878#393D4
引子博客的后台管理页面需要有登录系统,所以考虑做一下路由鉴权,实现方式也是Nuxt官网给出栗子来改写,顺便也将前后端路由给统一了。路由拦截前端方面主要通过利用N