VUE针对性总结:说一下vue的通信方式、和你对vue的理解

96 阅读2分钟

组件通信

父子组件

  1. props:父传子——父组件通过在子组件标签上绑定属性,使用 props 将数据传递给子组件

  2. 自定义事件:子传父——子组件通过 $emit 触发自定义事件,父组件可以在子组件上使用 v-on@ 监听这些事件,并在对应的方法中处理

  3. refs:用 ref 属性在父组件上给他的DOM和子组件命名,即可直接使用 $refs 获取DOM或者子组件的数据(父组件可访问、使用、修改子组件)

  4. $attrs和$listeners:父传孙——在父组件中给子组件定义一个属性,然后子组件自动传给孙组件,孙组件直接使用 $attrs.数据 来获取父组件的数据;$listeners 在父组件中绑定一个自定义事件,然后在子组件中通过 @listeners:事件名 来获取事件监听器(一般不推荐使用)

  5. $parent和$children:通过 $parent 属性可以访问当前组件的直接父组件实例,然后使用 this.$parent 访问父组件的属性和方法;$children 也一样,但是父组件使用时会返回一个数组,包含当前组件的所有子组件实例(一般不推荐使用)

非父子组件

  1. EventBus:称为中央事件总线,就是创建一个专门用于非父子组件之间通信的vue实例,作为中央事件总线。通过 $emit 触发事件,$on 监听事件,实现跨组件通信

  2. provide和inject:在父组件使用 provide 提供数据,子组件使用 inject 接受数据,这是vue的高级特性

  3. vuex:vuex是专门为vue.js应用程序开发的状态管理库。在store中全局存储和管理应用程序的状态,不同组件可以直接访问和修改store中共享的状态,实现组件之间的通信。vuex一般在多层级的项目中使用。

说一下你对vue的理解

  • vue是一种流行的前端JavaScript框架,用于构建用户界面。

  • vue有许多特性:

    1. 响应式数据:vue使用了数据劫持和观察的技术,使数据和视图之间保持同步。数据发生变化时,视图自动更新;反之,视图变化时也会影响到数据
    2. 组件化开发:vue可以把页面拆分成多个可重用的组件,每个组件都有自己的模版、样式和逻辑
    3. 虚拟DOM:vue使用虚拟DOM技术来提高渲染性能。vue会计算出虚拟DOM的差异,我们只对需要更新的部分进行实际DOM操作,比如说在一堆li标签使用虚拟DOM对比以后,只需更新某一个对比有差异的li标签
    4. 指令和过滤器:vue提供了丰富的指令和过滤器
    5. 生态系统丰富:vue有一个扩展生态系统,如vue-router、vuex、vue-cli