vue2中的组件
vue2中的组件
- 
作用:基于组件开发,易维护,易复用 
- 
分类:使用的作用域不同分为全局组件和局部组件 
- 
注意: - 组件名需要与原来的html标签不一致,且不要有大写字母
- 组件的data数据是一个函数,将对象return出去,与vue实例不一致
- 组件的template只能存在一个根标签
 
一、全局组件
| 1 | <div id="app"> | 
二、局部组件
| 1 | <div id="app"> | 
三、组件的参数传递
1)父组件传递参数给子组件
- 
使用v-bind:自定义属性向子组件传递参数 
- 
子组件中使用props接收参数,props的值是一个数组 
- 
同data一致,使用插值表达式在子组件的模板中使用props的参数即可使用v-bind:自定义属性向子组件传递参数子组件中使用props接收参数,props的值是一个数组同data一致,使用插值表达式在子组件的模板中使用props的参数即可 
| 1 | <div id="app"> | 
2)子组件传递参数给父组件
- 
在子组件标签上自定义一个事件,内容指向父组件的一个方法,作为该自定义事件的参数接收方法 
- 
在子组件中调用**this.$emit(“自定义事件名”, 传递的参数)**方法,触发参数的传递 
- 
在父组件的接收方法中,来处理子组件传递的参数 
| 1 | <div id="app"> | 
3)非父子组件传递参数
- 
创建一个空的vue实例对象, var data = new Vue(),用于充当事件中心的角色
- 
在A组件中通过 data.$emit(自定义事件名, 传递的参数),触发自定义事件
- 
在B组件中通过 data.$on(自定义事件名, function(input){...}),来监听自定义事件,通过处理函数来接收处理传递的参数
| 1 | <div id="app"> | 
四、内置组件
1)component
- 
作用:用于动态渲染组件 
| 1 | <div id="app" class="container"> | 
2)tarnsition
- 
作用:实现过度效果和动画 
- 
属性: - name:可以自定义前缀,设置后各个状态的类名前缀将会改变
 
- 
步骤: - 使用transition标签包裹元素或组件
- 对各个状态的类名进行样式的编写
- 显示阶段类名:v-enter-active
- 显示阶段开始:v-enter
- 显示阶段结束:v-enter-to
 
- 隐藏阶段:v-leave-active
- 隐藏阶段开始:v-leave
- 隐藏阶段结束:v-leave-to
 
 
- 显示阶段类名:v-enter-active
 
2.1)使用内置状态类名
| 1 | <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> | 
2.2)使用动画类库的类
- 
Animate.css是一款强大的CSS3动画类库 - 说明:是一款强大的CSS3动画类库,通过使用定义好动画类名,完成动画效果
- 官网:https://animate.style/
 
| 1 | <link href="https://cdn.jsdelivr.net/npm/animate.css@3.5.1" rel="stylesheet" type="text/css"> | 
3)transition-group
- 
作用:渲染多个元素,列表的动画 
- 
注意: - 默认渲染为 span,通过指定tag更换为其他元素
- 内部的v-for元素总要指定key属性
- 过度动画处于内部的元素中,而不是transition
- v-move对于设置过渡的切换时机和过渡曲线非常有用
 
- 默认渲染为 
| 1 | <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> | 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 半月无霜!
 评论
ValineDisqus








