Vue.js】vue的组件传值方式怎样的?

2020-11-25 19:04发布

4条回答
茄子酱
2楼 · 2020-11-26 09:29

Vue中传值主要分为两部分

父子通信

1.父传子
传递:当子组件在父组件中当做标签使用的时候,通过给子组件绑定一个自定义属性,值为需要传递的数据
接收:在子组件内部通过props进行接收
接收的方式有2种 一种是数组接收 另一种是对象接收
一般情况下我们都使用对象进行接收,因为对象接收可以校验数据的类型
例子
props:[“val”];
props:{
val:String
}
2.子传父
传递:当子组件给父组件传递数据的时候,通过调用父组件给子组件绑定的自定义事件,然后将值传递过去
接收:父组件通过自定义事件的函数来接收子组件传递过来的数据(注意这个自定义方法的函数在绑定的时候不需要加())
(2)、作用域插槽 
    带参数的插槽
    反向传值
    将子组件的数据传递给父组件,只需要给组件内部的slot绑定一个自定义属性
    在父组件中,子组件标签的内部书写一个template标签,通过scpoe来接收子组件传递过来的数据
3.非父子
1、在vue的原型身上添加一个公共的vue实例,组件之间调用这个公共的实例的o n / on/on/emit来传递数据 传递的一方调用
e m i t 接 收 值 的 一 方 调 用 emit 接收值的一方调用emiton;
2、手动封装$on $emit $off—>原理应用了观察者模式
3、EventBus
4、vuex

年年
3楼 · 2020-11-27 10:44

1、父组件向子组件传值

首先在父组件定义好数据,接着将子组件导入到父组件中。父组件只要在调用子组件的地方使用v-bind指令定义一个属性,并传值在该属性中即可,此时父组件的使命完成。

2、子组件向父组件传值

子组件向父组件传值这一个技术点有个专业名词,叫做“发布订阅模式”,很明显在这里子组件为发布方,而父组件为订阅方。根据这个专业名词,我们来看看子组件里面发生的事情。首先,需要触发子组件视图层里的某个事件,接着由该事件触发的方法中又使用关键方法$emit()发布了一个自定义的事件,并且能够传入相关的参数。

3、兄弟组件传值

首先在由vue-cli搭建起来的项目中的main.js创建一个事件总线,也就是中转站,作为通信的桥梁。


天天
4楼 · 2020-11-29 21:19

在 vue 中组件之间的关系有:父子,兄弟,隔代,传值方式有三种父组件向子组件传值、子组件向父组件传值、兄弟组件之间传值

父传子、子传父、非父子组件传值三种方式。

相关问题推荐

  • 回答 13

    目前,对于SEO支持比较好的项目方案是采用服务端渲染。所以如果项目有SEO需求,那么比较好的方案是服务端渲染。如果你已经采用了前后分离的单页项目,而你的网站内容不需要AJAX去获取内容和展示内容,那么可以试试 prerender-spa-plugin 这个插件,这个插件是...

  • 回答 3

    引用数据类型数组的元素是对象引用,没有实际的值,需要给它实例。例如date days = new date[5];days[0]  = new date(2000,12,3)每一个days都要去分配。而基础类型都有默认初始值。

  • 回答 9

    1.什么是vue生命周期?有什么作用?每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做 生命周期钩子 的函数,这给了用户在不同阶段添...

  • 回答 7

    是可以实现滴

  • 回答 8

    Vue采用数据劫持结合发布者-订阅者模式的方法,通过Object.defineProperty()来劫持各个属性的setter,getter属性,在数据变动话,通知订阅者,触发更新回调函数,重新渲染视图关键要素observer实现对vue各个属性进行监听function observer(obj, vm){ Object...

  • 回答 1

    假如说我页面上有一个按钮,点击之后请求后端接口,然后将后端返回的json做相关处理之后写入vuex的state。现在有两种写法:一种是:请求后端接口这个ajax代码应该是写在按钮的点击事件处理函数中,然后在这个处理函数里面提交mutations还一种是:直接将请求后...

  • $nextTick是什么?Vue.js 2020-07-15 16:21
    回答 1

    $nextTick是用来知道什么时候domg更新完成的,vue实现响应式并不是数据发生变化后dom立即变化,而是按照一定的策略来进行dom更新。$nextTick是在下一次dom更新循环结束之后执行延迟回调,在修改数据之后使用这个方法,立即更新dom....

  • 回答 2

    Object是引用数据类型,如果不用function 返回,每个组件的data 都是内存的同一个地址,一个数据改变了其他也改变了;javascipt只有函数构成作用域(注意理解作用域,只有函数的{}构成作用域,对象的{}以及 if(){}都不构成作用域),data是一个函数时,每个组件实例都...

  • Vue虚拟domVue.js 2020-06-19 15:15
    回答 5

        浏览器渲染引擎工作流程都差不多,大致分为5步,创建DOM树——创建StyleRules——创建Render树——布局Layout——绘制Painting    第一步,用HTML分析器,分析HTML元素,构建一颗DOM树(标记化和树构建)。    第二步,用CSS分析器,分析CSS文件和...

  • 回答 6
    已采纳

    vue 是前端的三大框架之一,主要用于构建用户界面的渐进式框架。在开发效率和性能来说都是很大的提升。所以对于学习前端的人员来说,vue这个框架是推荐学习的,因为目前市面上的企业项目都会使用框架开发,学习vue可以提升你对框架的理解,也可以对你面试和工...

  • vue 2.0如何搭建Vue.js 2020-04-02 14:33
    回答 3

    图片预加载有哪些好用的插件?

没有解决我的问题,去提问