专业汉语词典知识平台,分享汉字词语知识、历史文学知识解答!

励北网
励北网

vue组件怎么写,vue组件介绍

来源:小易整编  作者:小易  发布时间:2023-02-28 04:34
摘要:vue组件怎么写,vue组件介绍一、组件化思想如果我们将一个页面中所有的处理逻辑全部放在一起,处理起来就会变得非常复杂,而且不利于后续的管理以及扩展。但我们将一个页面拆分成一个个小的功能块,每个功能块完成属于自己这部分独立的功能,那么之后整...
  • this.$refs.引用名.子组件的某个方法

  • this.$children[0].子组件的某个方法(不推荐)

第一种方法步骤:

1、父组件通过属性将值传递给子组件

2、子组件内部通过props接收传递过来的值

<cpn :msg="message"></cpn>components: {    cpn: {      template: "#tmp",      props: ["msg"],      data() {        return {          counter: 0,        }      },    },  }

总结:

子组件中默认无法访问到父组件中的data上的数据和methods中的方法

  • 父组件可以在引用子组件的时候,通过属性绑定(v-bind:)的形式,把需要传递给子组件的数据,以属性绑定的形式,传递到子组件内部,供子组件使用

  • 子组件中把父组件传递过来的parentMsg属性,先在props数组中定义一下,这样才能使用这个数据

  • 如果父组件传递过来的属性带-,则在props中定义的时候需要使用驼峰命名,否则直接写传递过来的属性名即可

  • 组件中的所有props中的数据,都是通过父组件传递给子组件的

props传递数据原则:单向数据流(只允许父组件向子组件传递数据,不推荐子组件直接操作props中的数据)

vue组件怎么写,vue组件介绍

第二种方法:父组件通过调用子组件方法把数据传递给子组件,具体使用步骤:

1、在使用子组件时,给子组件加一个ref引用

2、父组件通过this.$refs即可找到该子组件,也可以操作子组件的方法:

this.$refs.ref引用.子组件方法

3、在子组件init方法中即可接收父组件传递过来的数据了

注意:ref 需要在dom渲染完成后才会有,在使用的时候确保dom已经渲染完成。比如在生命周期 mounted(){} 钩子中调用,或者在 this.$nextTick(()=>{}) 中调用。

<add-person ref="AddUser"></add-person>this.$nextTick(() => {  this.$refs.AddUser.init(row)})

通过$children,可以获取到所有子组件的集合

this.$children[0].某个方法

*子组件向父组件传值的方法如下:
  • $emit

  • $root

  • $parent(不推荐)

子组件又是如何向父组件传递数据的呢:通过事件向父组件发送消息

第一种方法步骤:

1、子组件通过自定义事件向父组件传递信息,在子组件中,通过$emit()来触发事件。

2、父组件监听子组件的事件,在父组件中,通过v-on来监听子组件事件。

vue组件怎么写,vue组件介绍

总结如下:
  • 父组件向子组件传递方法,使用的是事件绑定机制,v-on 当自定义了一个事件属性之后,那么子组件就能够通过某些方式(this.$emit)来调用传递进去的这个方法了

  • 可以通过this.$emit('绑定在子组件身上的事件名称',参数一,参数二)

第二种方法:子组件调用父组件方法以及获取父组件的值

1、通过 $root可以找到根组件

2、通过 $parent可以找到父组件

十、非父子组件间传值

在vue项目中,父子组件间的通讯很方便。但兄弟组件或多层嵌套组件间的通讯,就会比较麻烦。这时,使用eventBus通讯,就可以很便捷的解决这个问题。

eventBus可以在全局定义,实现全项目通讯,使用方法也很简单。

1、初始化——全局定义

      全局定义,可以将eventBus绑定到vue实例的原型上,也可以直接绑定到window对象上.

//main.jsimport Vue from 'vue';//方式一Vue.prototype.$EventBus = new Vue();//方式二window.eventBus = new Vue();

2、触发事件

//使用方式一定义时this.$EventBus.$emit('eventName', param1,param2,...)//使用方式二定义时EventBus.$emit('eventName', param1,param2,...)

3、监听事件

//使用方式一定义时this.$EventBus.$on('eventName', (param1,param2,...)=>{    //需要执行的代码})//使用方式二定义时EventBus.$on('eventName', (param1,param2,...)=>{    //需要执行的代码})

4、移除监听事件
      为了避免在监听时,事件被反复触发,通常需要在页面销毁时移除事件监听。或者在开发过程中,由于热更新,事件可能会被多次绑定监听,这时也需要移除事件监听。

//使用方式一定义时this.$EventBus.$off('eventName');//使用方式二定义时EventBus.$off('eventName');

具体应用:
需要新建一个js文件,来创建出我们的eventBus,我们把它命名为bus.js

import Vue from 'vue'// 使用 Event Busconst bus = new Vue()export default bus

在需要用到的组件中引入

// 在需要用到的组件中引入import bus from '@/utils/bus'// 监听mounted(){  bus.$on('changeActive', (next, apiId, serviceId) => {    this.updateActive(next, apiId, serviceId)  }) } methods: {    updateActive (next, apiId, serviceId) {       this.apiId = apiId      this.serviceId = serviceId      if (next) { // 点击下一步,数据全部清空        this.active += 1      } else {        this.active -= 1      }    },}

触发事件

bus.$emit('changeActive', true, this.apiId, this.serviceType)


本文地址:百科问答频道 https://www.neebe.cn/wenda/903499_3.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!

共3页 1 2 3 当前是最后一页

百科问答
小编:小易整编
相关文章相关阅读
  • 组件库是什么意思?

    组件库是什么意思?

    组件库是一种可用来重新使用和重组大量已创建的可视元件的组合,让开发者可以更轻松快捷地构建应用、界面和交互。它是一个精心设计的函数集,它可以让开发者可以快速搭建应用,而无需从头开发。组件库可以帮助开发者大量节省编写代码的时间和工作量,使开发...

  • 什么是Vue

    什么是Vue

    Vue.js(Vue)是一套用于构建用户界面的开源渐进式JavaScript框架。与其它大型框架不同的是,Vue被设计为可以自底向上逐层应用。Vue的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。Vue.js(Vue...

  • mpvue是什么,详解基于Vue的开发框架mpvue

    mpvue是什么,详解基于Vue的开发框架mpvue

    mpvue是什么,详解基于Vue的开发框架mpvue接触微信小程序有一段时间的开发者或开发团队,我相信多多少少都会为自己搭建封装一些便于开发的框架/脚手架,尤其是一些做过Web开发的开发者,受到现如今Web主流开发框架如Angular,Re...

  • vue路由跳转的方式有哪些,vue路由跳转详解

    vue路由跳转的方式有哪些,vue路由跳转详解

    vue路由跳转的方式有哪些,vue路由跳转详解声明式导航1.router-link组件支持用户在具有路由功能的应用中(点击)导航。通过to属性指定目标地址,默认渲染成带有正确链接的a标签,可以通过配置tag属性生成别的标签.不带参数:

  • vue组件怎么写,vue组件介绍

    vue组件怎么写,vue组件介绍

    vue组件怎么写,vue组件介绍一、组件化思想如果我们将一个页面中所有的处理逻辑全部放在一起,处理起来就会变得非常复杂,而且不利于后续的管理以及扩展。但我们将一个页面拆分成一个个小的功能块,每个功能块完成属于自己这部分独立的功能,那么之后整...

  • vue生命周期详述

    vue生命周期详述

    vue生命周期详述,这次来聊一下vue的生命周期!可以看到vue一整个的生命周期中会有很多钩子函数提供给我们在vue生命周期不同的时刻进行操作,那么先列出所有的钩子函数,然后慢慢来!beforeCreatecreatedbeforeMoun...

  • vue计算属性是什么,vue计算属性computed

    vue计算属性是什么,vue计算属性computed

    vue计算属性是什么,vue计算属性computed第一站什么是计算属性computedcomputed是基于它的依赖缓存,只有在它的相关依赖发生改变时才会进行更新。官方文档是这样说的:对于任何包含响应式数据的复杂逻辑,你都应该使用计算属性...

  • vue是什么,vue详解

    vue是什么,vue详解

    vue是什么,vue详解。Vue.js是一个渐进式MVVM框架,目前被广泛使用,也成为目前前端技术中颇具代表性的一个框架。按Vue作者的说法,Vue(及其生态)是一个渐进式MVVM框架,可以按照实际需要逐步进阶使用更多特性。Vue渐进式示...

  • 周排行
  • 月排行
  • 年排行

精彩推荐