专业游戏门户,分享手游网游单机游戏百科知识攻略!

嗨游网
嗨游网

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.eeeoo.cn/ruanjian/903499_3.html,嗨游网一个专业手游免费下载攻略知识分享平台,本站部分内容来自网络分享,不对内容负责,如有涉及到您的权益,请联系我们删除,谢谢!

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

软件教程
小编:小嗨整编
相关文章相关阅读
  • ios17锁屏小组件怎么设置(ios17锁屏时间字体大小怎么设置)?

    ios17锁屏小组件怎么设置(ios17锁屏时间字体大小怎么设置)?

    ios17锁屏小组件怎么设置(ios17锁屏时间字体大小怎么设置)?ios17可以根据自己的偏好调节锁屏壁纸上时间大小字体的粗细。同时,实况动态照片壁纸也重新回归,为你的锁屏增添活力。下面带来ios17锁屏小组件设置及锁屏时间字体大小设置。...

  • 如何使用Vue技术进行移动端开发

    如何使用Vue技术进行移动端开发

    如何使用Vue技术进行移动端开发随着移动互联网的迅猛发展,移动端应用的开发变得越来越重要。Vue.js作为一款轻量级、高性能的前端框架,被广泛应用于移动端开发中。本文将介绍如何使用Vue技术进行移动端开发,并给出具体的代码示例。一、准备工作...

  • 浅析Vue项目中怎么用Pinia状态管理工具

    浅析Vue项目中怎么用Pinia状态管理工具

    vue项目中怎么用pinia状态管理工具?下面本篇文章带大家聊聊vue项目中pinia状态管理工具的使用,希望对大家有所帮助!Pinia官网介绍说:Pinia是Vue的存储库,它允许您跨组件/页面共享状态。Vuex同样可以作为状态管理...

  • mpvue是什么

    mpvue是什么

    微信小程序推荐简洁的开发方式,通过多页面聚合完成轻量的产品功能。小程序以离线包方式下载到本地,通过微信客户端载入和启动,开发规范简洁,技术封装彻底,自成开发体系,有native和h5的影子,但又绝不雷同。mpvue是什么?mpvue...

  • 如何在Vue项目中使用路由实现页面刷新和缓存控制?

    如何在Vue项目中使用路由实现页面刷新和缓存控制?

    如何在vue项目中使用路由实现页面刷新和缓存控制?在Vue项目开发中,使用路由实现页面刷新和缓存控制是非常常见的需求。本文将介绍如何在Vue项目中使用路由来实现页面刷新和缓存控制,并给出相应的代码示例。路由配置首先,在Vue项目中需要使用v...

  • Vue-cli脚手架工具使用及项目配置说明

    Vue-cli脚手架工具使用及项目配置说明

    vue-cli脚手架工具使用及项目配置说明随着前端技术的不断发展,前端框架也越来越受到开发者的关注。Vue.js作为前端框架的佼佼者,已经被广泛应用于各种Web应用的开发中。Vue-cli是Vue.js官方提供的一个基于命令行的脚...

  • Vue中Mixin的使用方法和注意点介绍

    Vue中Mixin的使用方法和注意点介绍

    vue.js是当今web开发中最受欢迎的前端框架之一。它为构建大型、灵活和高效的web应用程序提供了一流的开发体验。vue.js的特性之一就是它支持mixin,一个很有用的概念,它允许我们在不同的组件中共享一些公共代码。本文将介绍Vue中M...

  • vue的跨域是什么意思

    vue的跨域是什么意思

    在vue中,跨域是指浏览器不能执行其他网站的脚本;它是浏览器同源策略造成的,是浏览器对js实施的安全限制。跨域本质是浏览器基于同源策略的一种安全手段;而同源策略是一种约定,它是浏览器最核心也最基本的安全功能。vue跨域的解决方法:1、jso...

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

精彩推荐