Vue三种常用传值示例(父传子、子传父、非父子
Vue中的传值操作是开发中经常遇到的需求,主要有三种常见场景:父组件向子组件传值、子组件向父组件传值以及非父子组件间的传值。下面是详细的介绍及示例。
1. 父组件向子组件进行传值
父组件模板部分代码如下:
```html
父组件:
```
对应的脚本部分,需要导入子组件并定义数据:
```javascript
import child from './child'
export default {
components: {
child
},
data () {
return {
name: ''
}
}
}
```
子组件接收到父组件传递的值,需要在props中定义:
```javascript
子组件: {{inputName}}
export default {
props: {
inputName: String, // 定义接收父组件值的类型
required: true // 是否必传
}
}
```
2. 子组件向父组件传值
子组件模板部分添加按钮,并定义点击事件:
```html
子组件: {{childValue}}
引入子组件定义一个传值的方法 --> 触发按钮:点击触发 @click="childClick"
设想一个场景,你需要两个组件间进行通信,而它们之间并没有直接的父子关系或共享祖先。这时,我们可以借助Vue的全局事件总线——bus.js来实现这一需求。下面让我们深入了解这个过程。
我们创建一个公共的bus.js文件,这个文件会作为中间传达的工具。我们在此导入Vue并创建一个新的Vue实例。
组件A的解读:
在组件A中,我们有一个元素值elementValue,以及一个按钮。当点击这个按钮时,会触发elementByValue方法,这个方法会向全局事件总线发出一个名为'val'的事件,并传递elementValue的值。
组件B的解读:
组件B中,我们也有一个按钮和一个显示区域。在组件挂载完成后,我们使用Bus的$on方法来监听名为'val'的事件。当该事件被触发时,我们会在控制台打印接收到的数据,并将该数据赋值给name。我们还有一个getData方法,用于对name的值进行自增操作。
以下是两个组件的代码解读:
组件A:
```html
A组件:
{{elementValue}}
import Bus from './bus.js' // 引入公共的bus,来做为中间传达的工具
export default {
data () {
return {
elementValue: 4 // 初始值设为4
}
},
methods: {
elementByValue: function () {
Bus.$emit('val', this.elementValue) // 向全局事件总线发出名为'val'的事件,并传递elementValue的值
}
}
}
```
组件B:
```html
B组件:
{{name}}
import Bus from './bus.js' // 引入公共的bus文件
export default {
data () {
return {
编程语言
- Vue三种常用传值示例(父传子、子传父、非父子
- 基于Vue,Nginx的前后端不分离部署教程
- asp.net微信开发(高级群发文本)
- 调试PHP程序的多种方法介绍
- php判断是否为json格式的方法
- KnockoutJS 3.X API 第四章之数据控制流with绑定
- JavaScript提高网站性能优化的建议(二)
- .NET Framework 4.5新特性介绍
- Bootstrap布局之栅格系统详解
- MVC分页之MvcPager使用详解
- .NET Framework SQL Server 数据提供程序连接池
- Angularjs 根据一个select的值去设置另一个select的值
- .NET基础之自定义泛型分析
- 给XML文档添加新 ”records”
- js实现带缓冲效果的仿QQ面板折叠菜单代码
- Win2008 R2 mysql 5.5 zip格式mysql 安装与配置