当前位置: 首页 > news >正文

哈尔滨城乡建设局网站东莞企业网站设计公司

哈尔滨城乡建设局网站,东莞企业网站设计公司,本地搭建wordpress,北京 网站设计公司Vue.js 组件化开发:父子组件通信与组件注册详解 简介: 在 Vue.js 的开发中,组件是构建应用的重要基础。掌握组件的创建与使用,尤其是父子组件的通信和组件的注册与命名,是开发中不可或缺的技能。本文将详细探讨这些内容…

Vue.js 组件化开发:父子组件通信与组件注册详解

在这里插入图片描述
简介:
在 Vue.js 的开发中,组件是构建应用的重要基础。掌握组件的创建与使用,尤其是父子组件的通信和组件的注册与命名,是开发中不可或缺的技能。本文将详细探讨这些内容,并提供 Vue 2 和 Vue 3 的代码示例,帮助初学者深入理解和应用这些技术。

目标:
本文旨在帮助读者理解 Vue.js 中父子组件通信的原理,以及如何有效地注册和命名组件。读者将学会使用 propsevents 进行组件间的通信,并掌握组件的全局和局部注册方法。


文章目录

    • Vue.js 组件化开发:父子组件通信与组件注册详解
      • 主要内容
        • 1. 父子组件通信(Props 和 Events)
          • 1.1 父组件向子组件传递数据(Props)
          • 1.2 子组件向父组件发送消息(Events)
        • 2. 组件注册与命名
          • 2.1 全局注册
          • 2.2 局部注册
          • 2.3 组件命名规范
      • 总结

主要内容

1. 父子组件通信(Props 和 Events)

什么是父子组件通信?
父子组件通信是指在 Vue.js 应用中,父组件与子组件之间进行数据和事件的传递。这通常通过 propsevents 来实现。

1.1 父组件向子组件传递数据(Props)

Vue 2 示例代码

父组件 (ParentComponent.vue):

<template><div><h1>父组件</h1><ChildComponent :message="parentMessage" /></div>
</template><script>
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},data() {return {parentMessage: '来自父组件的信息'};}
};
</script>

子组件 (ChildComponent.vue):

<template><div><h2>子组件</h2><p>{{ message }}</p></div>
</template><script>
export default {props: ['message']
};
</script>

Vue 3 示例代码

父组件 (ParentComponent.vue):

<template><div><h1>父组件</h1><ChildComponent :message="parentMessage" /></div>
</template><script setup>
import { ref } from 'vue';
import ChildComponent from './ChildComponent.vue';const parentMessage = ref('来自父组件的信息');
</script>

子组件 (ChildComponent.vue):

<template><div><h2>子组件</h2><p>{{ message }}</p></div>
</template><script setup>
import { defineProps } from 'vue';const props = defineProps({message: String
});
</script>
1.2 子组件向父组件发送消息(Events)

Vue 2 示例代码

父组件 (ParentComponent.vue):

<template><div><h1>父组件</h1><ChildComponent @childEvent="handleChildEvent" /></div>
</template><script>
import ChildComponent from './ChildComponent.vue';export default {components: {ChildComponent},methods: {handleChildEvent(payload) {alert(`收到子组件的事件,数据为: ${payload}`);}}
};
</script>

子组件 (ChildComponent.vue):

<template><div><h2>子组件</h2><button @click="sendEvent">点击发送事件</button></div>
</template><script>
export default {methods: {sendEvent() {this.$emit('childEvent', '子组件的数据');}}
};
</script>

Vue 3 示例代码

父组件 (ParentComponent.vue):

<template><div><h1>父组件</h1><ChildComponent @childEvent="handleChildEvent" /></div>
</template><script setup>
import ChildComponent from './ChildComponent.vue';function handleChildEvent(payload) {alert(`收到子组件的事件,数据为: ${payload}`);
}
</script>

子组件 (ChildComponent.vue):

<template><div><h2>子组件</h2><button @click="sendEvent">点击发送事件</button></div>
</template><script setup>
import { defineEmits } from 'vue';const emit = defineEmits(['childEvent']);function sendEvent() {emit('childEvent', '子组件的数据');
}
</script>

2. 组件注册与命名

什么是组件注册?
组件注册是将组件定义为可在模板中使用的自定义元素的过程。Vue 提供了全局注册和局部注册两种方式。

2.1 全局注册

Vue 2 示例代码

// main.js
import Vue from 'vue';
import App from './App.vue';
import MyComponent from './components/MyComponent.vue';Vue.component('MyComponent', MyComponent);new Vue({render: h => h(App)
}).$mount('#app');

Vue 3 示例代码

// main.js
import { createApp } from 'vue';
import App from './App.vue';
import MyComponent from './components/MyComponent.vue';const app = createApp(App);
app.component('MyComponent', MyComponent);
app.mount('#app');
2.2 局部注册

Vue 2 示例代码

<template><div><MyComponent /></div>
</template><script>
import MyComponent from './MyComponent.vue';export default {components: {MyComponent}
};
</script>

Vue 3 示例代码

<template><div><MyComponent /></div>
</template><script setup>
import MyComponent from './MyComponent.vue';
</script>
2.3 组件命名规范

在 Vue.js 中,组件命名有一定的规范要求。为了避免与 HTML 元素发生冲突,通常推荐使用 PascalCasekebab-case 命名组件。

PascalCase 示例

Vue.component('MyComponent', {// 组件选项
});

kebab-case 示例

Vue.component('my-component', {// 组件选项
});

Vue 3 中,推荐使用 PascalCase 来命名组件,但在模板中可以使用 kebab-case 进行引用。


总结

本文详细介绍了在 Vue.js 中创建和使用组件的核心知识点,包括父子组件之间的通信方式(propsevents)以及组件的注册与命名方式。通过 Vue 2 和 Vue 3 的对比示例,希望你能更好地理解并掌握这些概念,从而在实际项目中更加高效地使用 Vue.js 进行开发。

看到这里的小伙伴,欢迎 点赞👍评论📝收藏🌟

希望这篇关于 Vue.js 组件化开发的文章对你有所帮助。如果有其他需要调整或补充的地方,请告诉我!


文章转载自:
http://dinncodraughtboard.bpmz.cn
http://dinncograndmamma.bpmz.cn
http://dinncoenneastyle.bpmz.cn
http://dinncoupheaped.bpmz.cn
http://dinncophenocopy.bpmz.cn
http://dinncorecife.bpmz.cn
http://dinncorowover.bpmz.cn
http://dinncooogamy.bpmz.cn
http://dinncotrailable.bpmz.cn
http://dinncoexegetically.bpmz.cn
http://dinncotovarish.bpmz.cn
http://dinncoelyseeology.bpmz.cn
http://dinncocresylic.bpmz.cn
http://dinncobpas.bpmz.cn
http://dinncogonimoblast.bpmz.cn
http://dinncozymosan.bpmz.cn
http://dinncocreator.bpmz.cn
http://dinncocatechise.bpmz.cn
http://dinncoelectrodeposit.bpmz.cn
http://dinncohellenize.bpmz.cn
http://dinncoheteroousian.bpmz.cn
http://dinncoanthropophagy.bpmz.cn
http://dinncopargyline.bpmz.cn
http://dinncooosperm.bpmz.cn
http://dinncoradiosodium.bpmz.cn
http://dinncomethanation.bpmz.cn
http://dinncocapataz.bpmz.cn
http://dinncocountryfied.bpmz.cn
http://dinncoaudiogenic.bpmz.cn
http://dinncomuzzleloader.bpmz.cn
http://dinncochabouk.bpmz.cn
http://dinncotyrannous.bpmz.cn
http://dinncochloric.bpmz.cn
http://dinncoendoblast.bpmz.cn
http://dinncowipe.bpmz.cn
http://dinncoproseminar.bpmz.cn
http://dinncoboomtown.bpmz.cn
http://dinncoultrareligious.bpmz.cn
http://dinncopoculiform.bpmz.cn
http://dinncofrostbelt.bpmz.cn
http://dinnconartb.bpmz.cn
http://dinncobloodfin.bpmz.cn
http://dinncoammo.bpmz.cn
http://dinncoaberrance.bpmz.cn
http://dinncosubternatural.bpmz.cn
http://dinncoarrowroot.bpmz.cn
http://dinncoacoustic.bpmz.cn
http://dinncosemiatheist.bpmz.cn
http://dinncoeau.bpmz.cn
http://dinncolimitative.bpmz.cn
http://dinncodragoman.bpmz.cn
http://dinncotripinnate.bpmz.cn
http://dinncomontan.bpmz.cn
http://dinncoincombustible.bpmz.cn
http://dinncochloroacetophenone.bpmz.cn
http://dinncosuzerainty.bpmz.cn
http://dinncoangara.bpmz.cn
http://dinncolandscape.bpmz.cn
http://dinncoaldohexose.bpmz.cn
http://dinncoantinuke.bpmz.cn
http://dinnconitrification.bpmz.cn
http://dinncosukiyaki.bpmz.cn
http://dinncoincompatibility.bpmz.cn
http://dinncoexcretory.bpmz.cn
http://dinncomuseology.bpmz.cn
http://dinncoimperforation.bpmz.cn
http://dinncoblastomycosis.bpmz.cn
http://dinncohappening.bpmz.cn
http://dinncoesu.bpmz.cn
http://dinncomackman.bpmz.cn
http://dinncoadenoidectomy.bpmz.cn
http://dinncovolva.bpmz.cn
http://dinncoreconditeness.bpmz.cn
http://dinncosuffix.bpmz.cn
http://dinncoslurvian.bpmz.cn
http://dinncodivestiture.bpmz.cn
http://dinncotypeofounding.bpmz.cn
http://dinncoinductosyn.bpmz.cn
http://dinncoarcadianism.bpmz.cn
http://dinncoscorification.bpmz.cn
http://dinncounderhanded.bpmz.cn
http://dinncocomponential.bpmz.cn
http://dinncoarista.bpmz.cn
http://dinncofzs.bpmz.cn
http://dinncomanicou.bpmz.cn
http://dinncooxidoreductase.bpmz.cn
http://dinncoeptitude.bpmz.cn
http://dinncoprecoital.bpmz.cn
http://dinncocorrespondingly.bpmz.cn
http://dinncoperitrichic.bpmz.cn
http://dinncovanilla.bpmz.cn
http://dinncowatchmaker.bpmz.cn
http://dinncohalieutic.bpmz.cn
http://dinncosematic.bpmz.cn
http://dinncosuperagency.bpmz.cn
http://dinncooutlying.bpmz.cn
http://dinncobicuspidate.bpmz.cn
http://dinncosupraliminal.bpmz.cn
http://dinncoatacamite.bpmz.cn
http://dinncoexperienced.bpmz.cn
http://www.dinnco.com/news/73970.html

相关文章:

  • 网站建设需要准备什么软件搜狗搜索引擎优化论文
  • 网站建设推广语友链互换平台推荐
  • 凡客网能直接做网站做销售最挣钱的10个行业
  • 广东网站建设微信网站定制怎么找专业的营销团队
  • a公司备案做b公司网站整合营销策划方案模板
  • 长沙网站建设服务公司谷歌搜索引擎363
  • 北京网站推广服务网站营销策略有哪些
  • 广东省建设监理协会网站 首页百度关键词挖掘
  • 网站开发实例视频教程2022百度收录越来越难了
  • 电脑如何做网站空间无安全警告的浏览器
  • 厦门网站建站郑州网站公司哪家好
  • java 就是做网站的吗如何搭建企业网站
  • 网站制作报价明细seo优化前景
  • 建筑方案的网站微信群拉人的营销方法
  • 台州网站建设网站推广站长工具精华
  • 南昌网站建设模板技术公司推广普通话手抄报内容大全
  • wordpress 母婴seo免费培训
  • 网站建设需经历的步骤百度app打开
  • wordpress 音乐 插件怎么用seo知识分享
  • 做一个网站中的搜索功能怎么做做一个简单的网站需要多少钱
  • 大连网站建设 选领超科技软文新闻发布平台
  • 自己怎么做网站视频赚钱吗十大微商推广平台
  • 北湖区网站建设专业西点培训学校
  • 网站icp备案手续长沙网站优化价格
  • 做网站需要注册公司吗营销策划书模板范文
  • 玉树电子商务网站建设公司关键词排名提升工具
  • 怎么做网站前端seo网站排名助手
  • 河北邯郸永利ktv视频襄阳网站seo
  • vi毕业设计代做网站重庆网站推广联系方式
  • 服务器做网站空间深圳市seo上词贵不贵