美文网首页
vue组件之间跨层级通信?为什么index不能作为key?

vue组件之间跨层级通信?为什么index不能作为key?

作者: 我性本傲 | 来源:发表于2019-04-30 18:12 被阅读0次

1.子组件怎么修改父组件通过props传递过来的属性? 

vue是单向数据流的,在子组件是不可以修改传递的属性的。 

2.this.$emit的返回值是什么?

this。 如果需要返回值可以使用回调 

3.相同名称的插槽是合并还是替换?2.5和2.6语法有不同。 

2.5的时候普通插槽是合并,作用域插槽是替换

2.6插槽都是替换

4.为什么index不能作为key?

用key是解决,更新dom性能问题。

最好不要用index,因为key值就相当于当前元素的一个身份名牌,需要是独一无二的,这样在更新数据的时候,Vue 将不会移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过(通过key值确认)的每个元素,你用下标的话,如果数组发生改变,就有可能出现相同的key值,这样的话Vue又要比较这两个相同key值的dom元素(本来通过key值就能确定的)。

如果用div,span它们本身内部是没有任何状态,所以没问题。

5.数组哪些方法支持响应式更新?如不支持,怎么处理?底层原理是什么?

支持:push,pop,shift,unshift,splice,sort,reverse

不支持:fighter,cancat,slice。想支持的话this.array  =新的数组(不是原来的数组)

原理:同样是使用object.defineproperty对数组方法进行改写 

6.用户停止输入超过500ms后,才去更新name?

1.settimeout

2.loadsh debounce第三方

7. vue如何做响应式更新的?

在实例化的时候会对data下面的数据进行getter和setter的转化,组件在渲染的时候,如果你用到了data。才会被watcher,如果render时候并没有用到,就不会被watcher,不会被触发组件的更新。

8.组件之间跨层级通信??

provide 提供数据

inject 取数据

A为父组件,b为子组件,c为孙组件。a与c之间通信呢?

a为provide

c为inject

9.如何获取跨层级组件的实例? 

通过$ref可以获取到当前组件的实例。

通过$parent可以获取到父组件的实例。

通过$child可以获取到子组件的实例。

层级多呢?怎么办?

 1.递归。 

缺点:代码繁琐,性能低效,每次访问实例的时候都要采用递归的形式 ,因为实例不能被缓存。

2.callback ref

 主动通知 setXXXref

 主动获取getXXXref

10.template和jsx的对比以及本质

(1).template  偏表现

模板语法(HTML的扩展) 

数据绑定使用Mustache语法(双大括号)

(2). jsx偏逻辑

javascript的语法扩展

数据绑定使用单引号

相关文章

  • vue组件之间跨层级通信?为什么index不能作为key?

    1.子组件怎么修改父组件通过props传递过来的属性? vue是单向数据流的,在子组件是不可以修改传递的属性的。 ...

  • Vue 组件 / 通信

    子组件=》父组件 vue的组件之间的通信类似angular的父子层级之间通信,父组件获取子组件数据步骤大概如下: ...

  • Vue组件通信

    Vue组件通信 Vue组件关系可分为三大类: 父子组件 兄弟组件 跨级组件, 相应的组件之间的通信也分类三大类: ...

  • Vue组件通信

    总体来说,Vue中组件之间的通信场景如下图: 可以将其分为父子组件通信、兄弟组件通信、跨级组件通信。 1. 自定义...

  • 实现Vue任意组件之通信只需几行代码

    在Vue中组件通信 用 $emit,这个只涉及到 父子组件之间的通信,如果是多个组件之间,层级关系比较复杂的情况下...

  • Vue 中不要用 index 作为 key

    Vue 中的 key 是用来做什么的?为什么不推荐使用 index 作为 key

  • vue组件之间通信

    vue 组件之间通信 vue组件之间通信方式: 1.父组件通过props向下传数据给子组件,子组件通过$emit事...

  • 事件总线

    事件总线主要是为了解决组件间跨层级通信.

  • Vue通信的几种方式

    组件之间通信, 主要存在于下面三种情况: 父子组件之间(Index-A、Index-B...) 兄弟组件之间(A-...

  • vue组件通信

    vue深层的组件间通信 需求:当我们有一个组件的层级结构为 组件1 >> 组件2 >> 组件3的时候怎样通信最好 ...

网友评论

      本文标题:vue组件之间跨层级通信?为什么index不能作为key?

      本文链接:https://www.haomeiwen.com/subject/vizvnqtx.html