导航:首页 > 编程语言 > vuejs子组件传参

vuejs子组件传参

发布时间:2023-01-16 18:20:18

㈠ Vue-Cli—04.父子组件传值|祖孙组件传值|兄弟组件传值

父组件向子组件传值,可以通过绑定属性传值;子组件通过props接收父组件传值。
父组件:

子组件:

子组件通过$emit触发一个自定义事件,将更新的数据传给父组件。
子组件:

父组件:

首先祖先给子孙后代传值也是可以用props传递,一层层传递,如果嵌套了五六层,这种方法就显得很繁琐。
所以就用到了provide(提供)和inject(注入)。这两个是配套使用的,以允许祖先向所有祖先后代注入一个依赖。祖先组件通过provide添加依赖数据,它里面定义的数据,后代组件可以通过inject选择性注入并直接使用。
注意: 后代组件通过inject注入祖级组件中的依赖数据,跟props一样,接收的数据是只读的,不能修改。

祖先组件:

后代组件:

在Vue的原型对象上,添加一个 $bus属性 ,该属性的的属性值是一个Vue实例。Vue的所有实例,都将共用同一个$bus。这个$bus属性,称之为:中央事件总线。
vm.$emit( eventName, […args] ): 触发当前实例上的事件。附加参数都会传给监听器回调。
vm.$on( event, callback ): 监听当前实例上的自定义事件。事件可以由 vm.$emit 触发。回调函数会接收所有传入事件触发函数的额外参数。
vm.$once( event, callback ): 监听一个自定义事件,但是只触发一次。一旦触发之后,监听器就会被移除。
vm.$off( [event, callback] ): 移除自定义事件监听器。

main.js文件

兄弟A鸽子组件:
点击鸽子组件中的‘修改乌鸦数据’按钮,可以修改乌鸦组件页面的数据。

兄弟B乌鸦组件:

㈡ vue易犯错误之父子组件传值注意-加冒号和不加冒号区别

父组件向子组件传值,如果不加:冒号,传过去的不是数值,而是一个字符串

父组件向子组件传值,加上:冒号,传过去的就是一个数值,不是字符串,因为加了:冒号以后引号""里面的内容就是一个js表达式

只有传递字符串常量时,不采用v-bind形式,其余情况均采用v-bind形式传递。

如果不加冒号,子组件在接收到值之后,监听做不到改变监听值内的属性

㈢ vue2.0 父组件给子组件传递数据的方法

在父组件
App.vue
中引用子组件
A.vue,把
name
的值传给
A
组件。
1、安装
在桌面新建一个文件夹
$
cd
到文件中
$
npm
install
-g
vue-cli
$
vue
init
webpack
.
$
npm
install
$
npm
run
dev
vue
init
webpack
.
之后的选择解释
2、删除
1、删除App中的一些内容如下
2、删除components文件中的HelloWorld.vue
3、修改
修改App.vue
如下:
<template>
<div
id="app">
//
message
定义在子组件的
props

<A
v-bind:message="name"/>
</div>
</template>
<script>
import
A
from
'./components/A'
export
default
{
name:
'App',
components:
{
A
},
data(){
return{
name:"我就是数据啊"
}
}
}
</script>
4、新建
在components新建A.vue并写入内容如下:
<template>
<div>{{message}}</div>
</template>
<script>
export
default
{
props:
['message']
//接受message传过来的数据
}
</script>
5、最后
在命令行输入
$
npm
run
dev
总结
以上所述是小编给大家介绍的vue2.0
父组件给子组件传递数据的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
您可能感兴趣的文章:vue父组件向子组件(props)传递数据的方法vue组件Prop传递数据的实现示例vue中各组件之间传递数据的方法示例vue.js组件之间传递数据的方法vue子组件使用自定义事件向父组件传递数据Vue2.x中的父组件传递数据至子组件的方法vuejs动态组件给子组件传递数据的方法详解

㈣ vue父子传参

1、父子传参

 父组件向子组件传值

父向子

父组件上边,在要接受数据的组件上通过动态属性传递



:data="data"

子组件通过props属性接受

1.数组

    props:['title','count','imgs','styles'],

2.对象

    属性名类型 Object | Array | String | Numeber | Boolean | Function

    props:{

        title:Array,

    }

    props:{

        属性名:{

            type:类型,

            required:必填项,默认值为false,

            defalult:默认值,(如果是简单值的话,直接设置,如果是数组或者对象的话,需要一个函数),

            validator(val){

            自定义格式的验证,函数return 成立

            }

        }

    }

    vue 是单向数据流,不能在子组件里面直接修改父组件传递过来的值

   子向父

        子组件里边使用$emit

    $emit('事件名称','实参1','实参2')

    <button @click="$emit('addCount',count)"></button>

    @事件名称 = "事件处理程序"

    父组件接受的方法

        @addCount = "方法名"

        在methods方法里面写函数

        addCount(){

            console.log(1);

        }

      非父子

            3通过创建一个空对象

            在 main.js 里面Vue.prototype.$bus=new Vue();

            所有的组件都是通过vueComponent 实例出来的 vueComponent继承vue

            子组件

              传参的方式:  this.$bus.$emit('add',item)

                在created方法里面接受

                this.$bus.$on('add',(obj)=>{

                    console.log(obj)//传过来的参数值

                })

㈤ Vue 组件之间传参!

父组件向子组件传参,通过自定义属性的方式进行传参,在子组件中使用prop定义自定义的属性,然后在父组件中通过v-bind指令把需要传递的数据绑定在子组件上,那在子组件中props里面的自定义属性可以直接使用.

子组件向父组件传数据使用自定义事件, vue组件提供了一个 emit('自定义事件名', 传递的数据) ),子组件传递数据时,触发响应的事件函数,就会自动触发通过$emit给父组件绑定的自定义事件,自定义事件接受一个参数,参数就是子组件传递过来的数据

兄弟组件之间的数据传递,通过eventBus来做中间的桥梁,传输方通过中间组件调用 on 接受数据,两者之间的自定义属性名保持一致。

通过vuex存储数据, Vuex是一个专为vue.js 应用程序开发的状态管理模式, 它采用[ 集中式 ]存储管理数据,以相应的规则保证状态以一种可预测的方式发生改变, 一变全变,同步更新数据。

ref 引用可以作用在h5标签上,也可以作用在组标签上,作用在h5标签上是获取的是DOM对象, 作用在组件标签上,通过this.$refs获取的是组件的实例对象。

㈥ vue.js 怎么给组件传参数

你是说父组件和子组件传还是子组件给父组件传?
子组件给父组件传的话

this.$emit(func,value) 这样传递

父组件给子组件传的话给子组件里面放一个props属性

㈦ 如何在vue.js组件之间进行数据传递

组件与组件之间,还存在着不同的关系。父子关系与兄弟关系(不是父子的都暂称为兄弟吧)。

父子组件

父子关系即是组件 A 在它的模板中使用了组件 B,那么组件 A 就是父组件,组件 B 就是子组件。

子组件想要使用父组件的数据,我们需要通过子组件的 props 选项来获得父组件传过来的数据。以下我使用在 .vue 文件中的格式来写例子。

如何传递数据

在父组件 father.vue 中引用子组件 child.vue,把 name 的值传给 child 组件。

<template>
<div class="app">
// message 定义在子组件的 props 中
<child :message="name"></child>
</div>
</template>
<script> import child from './child.vue'; export default { components: { child }, data() { return { name: 'linxin' } } }</script>

在子组件 child.vue 中的 props 选项中声明它期待获得的数据

<template>
<span>Hello {{message}}</span>
</template>
<script> export default { // 在 props 中声明获取父组件的数据通过 message 传过来 props: ['message'] }</script>

那么页面中就会渲染出:Hello linxin

prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。修改子组件的 prop 值,是不会传回给父组件去更新视图的。那么子组件要如何去与父组件通讯呢?

那就是自定义事件。通过在父组件 $on(eventName) 监听自定义事件,当子组件里 $emit(eventName) 触发该自定义事件的时候,父组件执行相应的操作。

比如在父组件中控制一个弹框子组件的显示,在子组件中按下关闭之后,告诉父组件去隐藏它,然后父组件就执行操作隐藏弹框。例如在子组件中:

这个emit就是触发事件的地方。

如果是复杂场景,或者不相关的组件之间,建议用vuex,这个相当于Angular中的注册事件,具体过程可以参考官方手册,写的例子和图例都很详细了

㈧ vue.js父组件怎么传值给子组件

子组件通过$emit方法向抄父组件发送数据,子组件在父组件的模板中,通过自定义事件接收到数据,并通过自定义函数操作数据

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript" src="vue.js"></script>
</head>
<body>
<!-- 子组件向父组件传递数据 -->
<div id="box">
<v-parent></v-parent>
</div>

㈨ vue.js 两个父组件中的子组件怎么传值

A子传A父($emit和$on),A父给B子(prop)。。

阅读全文

与vuejs子组件传参相关的资料

热点内容
templatewebjs下载 浏览:774
note3应用程序未安装 浏览:714
dos看图工具 浏览:15
微信直接加为好友 浏览:467
可以用微信传送的文件app 浏览:294
pdf文件解析乱码 浏览:479
光照无关图代码 浏览:688
Linux读写文件前八位 浏览:597
word如何绘制饼状图 浏览:172
w7系统搜索文件夹 浏览:618
java线程变量 浏览:854
苹果电脑word是只读文件 浏览:691
ps5国行备份文件大小 浏览:754
linux恢复删除文件命令 浏览:805
win10家庭版打不开qq文件 浏览:794
女生来例假有哪个app比较好 浏览:66
调用后台接口为什么不显示数据 浏览:363
js判断重复 浏览:422
联通如何切换到网络电视 浏览:191
学编程的优势哪里靠谱 浏览:939

友情链接