vue的动画封装,vue的递归组件
在项目中,许多地方会使用到类似的动画,所以我们封装起来会好点,我们先创建一个组件,用来设置它的动画效果,
<template><transition name="fade" @before-enter="handleBeforeEnter" @enter="handleEnter"><slot v-if="show"></slot></transition>
</template><script>
export default {props:['show'],methods:{handleBeforeEnter:function(el){el.style.color='red'},handleEnter:function(el,done){setTimeout(()=>{el.style.color='green',done()},2000)}}
}
</script>
设置一个组件,动画效果用js来定义,我们接受来自父组件的参数(show),再来控制我们子组件的显示与隐藏。
我们在子组件中设置了插槽slot ,让父元素决定需要执行动画的dom元素。
此时我们来设置父组件
<template><div class="hello"><h1>{{ msg }}</h1><h2>Essential Links</h2><ul></ul><h2>Ecosystem</h2><child :show="show"><div>show child</div></child><button @click="clickTr">点击切换</button> </div>
</template><script>
import child from './child.vue' //引入子组件
export default {name: 'HelloWorld',data () {return {msg: 'write you first vue ',show:true}},methods:{clickTr:function(){this.show=!this.show;}},components:{//注册组件child,}}
</script>
我们需要在父组件中要引入子组件(from后面跟的是路径,你根据自己的文件位置填写路径和子组件名),然后我们的父组件需要注册组件 components引入,然后在父组件template中把子组件添加进去,在子组件中添加需要显示的元素;重点我们要在子组件中添加:show=“show” 这里是 :传递子组件的值(也就是子组件props接收的值)=“父组件的data的某属性”;在父组件中设置methods方法,用来控制样式的显示与隐藏,我们可以在下面定义一个按钮,绑定一个点击事件,来控制父组件的data的某属性的值;此时我们就拥有了一个封装的动画。
vue中我们会获取到后端传递过来的,多组嵌套值,这时候我们可以使用vue的递归组件来实现。
<template><div><divclass="item"v-for="(item, index) of list":key="index"><div class="item-title border-bottom"><span class="item-title-icon"></span>{{item.title}}</div><div v-if="item.children" class="item-chilren"><detail-list :list="item.children"></detail-list></div></div></div>
</template><script>
export default {name: 'DetailList',props: {list: Array}
}
</script>
我们在定义组件时填写的name名字就是我们可以递归复用的值。
vue的动画封装,vue的递归组件相关推荐
- hide show vue 动画_(Vue动效)7.Vue中动画封装
关键词:动画封装--进行可复用 一.如何封装? 1.使用:局部组件传递数据+局部组件中使用JS动画 2.原理:将动画效果完全第封装在一个名为<fade>的组件中,今后如要复用,只需要复制有 ...
- vue树形权限菜单_Vue.js 递归组件实现树形菜单(实例分享)
最近看了 Vue.js 的递归组件,实现了一个最基本的树形菜单. 项目结构: main.js 作为入口,很简单: import Vue from 'vue' Vue.config.debug = tr ...
- vue树形权限菜单_Vue.js 递归组件实现树形菜单
最近看了 Vue.js 的递归组件,实现了一个最基本的树形菜单. main.js 作为入口: import Vue from 'vue' import main from './components/ ...
- VUE中简单封装二次确认组件
如何快速封装简单二次确认组件? 一.首先在src文件夹内的components文件中创建一个secn-conf.vue 二 .在secn-conf.vue页面中将弹出层.提示消息等样式写好 三 .在p ...
- Vue动态查询条件-Vue动态查询规则-Vue多条件分组组合查询-递归组件(一):前端
先看最终的效果: 最近项目上有一个需求,VUE前端要实现动态查询条件组件,后端就能够动态组装SQL. 要模仿人家Azure Devops的查询功能,我丢,Azure Devops是人家微软开发的个东西 ...
- vue动画、vue位移动画、vue列表动画
1.vue动画 1.1 vue动画设置 把需要显示隐藏做动画的标签放入transition组件中作为子标签 注意:transition标签要求仅有一个子标签,多余的不会渲染,如果需要在一个组件中实现多 ...
- vue 如何开发封装自己的公共组件库,并发布到 npm 上
一.全局安装 vue-cli 脚手架,使用 vue init webpack-simple yyl-npm-practice 初始化项目 初始化项目后 npm install ; npm run de ...
- 基于vue和elementUI封装框选表格组件
前言:主要是 table 表格框选功能 实现功能如下: 表格框选功能 右键操作功能(删除.查看.编辑) 分页功能 表头分类筛选功能 回显功能(显示默认选中数据) 排序功能 行禁用不可选功能 不说废话, ...
- Vue实战项目开发--Vue中的动画特效
项目的源代码在GitHub上:点击查看 目录 vue中的css动画原理 在Vue中使用Animate.css库 在Vue中同时使用过渡属性和动画 Vue中的Js动画与Velocity.js的结合 Vu ...
最新文章
- iOS Sprite Kit教程之xcode安装以及苹果帐号绑定
- jar包反编译成源代码_IntelliJ IDEA 如何设置自动下载源代码和文档
- Qracle学习:排序
- Eclipse-无法执行现有代码,依旧执行以前的代码
- 非均匀采样的kalman滤波
- 安装win7和XP双系统的注意事项
- WCF中的服务契约(Continued)
- CopyU!v2 已经收录到腾讯软件管家!
- 分层抽样不按比例如何加权_抽样技术论文 -
- 我写了个微信抽奖程序
- MySQL逻辑架构及工作流程
- 人之最美,纯朴初心,有所不为
- MAC M1大数据0-1成神篇-7 补充CAP模式
- Archlinux 安装、美化、软件入门(四)
- 谷歌地图开发地图不能显示_Google,为什么地图不能让我在家工作?
- 《Leaflet 进阶知识点》- L.polygon 多边形绘制详解
- 电容充电时间计算公式
- Goweb开发之Beego框架实战:第八节 写文章功能
- mysql的weekday函数_MySQL WEEKDAY()用法及代码示例
- 【大数据入门核心技术-HBase】(十)Hbase结合Phoenix的使用
热门文章
- 计算机休眠快还是关机快,你应该关机,睡眠还是休眠你的笔记本电脑? | MOS86...
- python 生成excel像素画_Aseprite+Cocos:打包像素画图,导入到cocos里并动起来
- echart图表鼠标放上去显示百分比,保留一位小数
- python nonlocal的用法_python中的global和nonlocal关键字怎么使用
- ARP协议 地址解析协议:IP地址转换为MAC地址
- Java刺客信条回复生命_《刺客信条英灵殿》回复生命值方法 怎么回血
- 光线反射模拟的matlab仿真
- Markdown的前世今生 + CSDN的Markdown语法和使用大全
- 抖音快手一前一后的支付梦
- shp文件说明及读取、绘图