• Vue2父传子、子传父和兄弟间互传


    首先创建局部组件来完成之间的传值。

    一、父组件给子组件传值

    父类组件: 使用props属性,父组件向子组件传递数据。

    1. <script>
    2. import SonBoy from "./components/SonBoy.vue";
    3. export default {
    4. name: "App",
    5. data() {
    6. return {
    7. obj: {name: "张三",age: 22,sex: "男"},
    8. arr: [1, 2, 3, 4, 5],
    9. };
    10. },
    11. components: {
    12. SonBoy,
    13. },
    14. };
    15. script>
    16. <style>style>

    子类组件:

    1. <script>
    2. export default {
    3. name: "SonBoy",
    4. props: {
    5. obj:{
    6. type:Object
    7. },
    8. arr:{
    9. type:Array
    10. }
    11. },
    12. };
    13. script>
    14. <style scoped>style>

    二、父组件给子组件传值

    子类组件:子组件向父组件传值,使用自定义事件$emit

    在子组件中定义一个方法使用$emit,'itemclick'是事件名,item是传过去的值。

    1. <script>
    2. export default {
    3. name: "SonBoder",
    4. data() {
    5. return {
    6. categoties: [
    7. {id: "aaa",name: "热门推荐"},
    8. {id: "bbb",name: "手机数码"},
    9. {id: "ccc",name: "家用家电"},
    10. {id: "ddd",name: "电脑办公"},
    11. ],
    12. };
    13. },
    14. methods: {
    15. hand(item) {
    16. this.$emit('ageItem',item)
    17. },
    18. },
    19. };
    20. script>
    21. <style scoped>style>

    父类组类:

    1. <script>
    2. import SonBoder from "./components/SonBoder.vue";
    3. export default {
    4. name: "App",
    5. data() {
    6. return {
    7. };
    8. },
    9. methods: {
    10. hanger(item) {
    11. console.log(item.name);
    12. },
    13. },
    14. components: {
    15. SonBoder,
    16. },
    17. };
    18. script>
    19. <style>
    20. style>

     

    三、子组件之间互传

    兄弟之间传值需要借组bus传递。

    新建bus.js用来传递中间的媒介。

    1. import Vue from 'vue';
    2. export default new Vue;

    创建兄弟1:

    1. <script>
    2. import bus from '@/common/bus'
    3. export default {
    4. name: "SonBoy",
    5. data(){
    6. return{
    7. msg:'我是兄弟'
    8. }
    9. },
    10. methods: {
    11. goWork(){
    12. bus.$emit('SonBoder',this.msg);
    13. }
    14. },
    15. };
    16. script>
    17. <style scoped>style>

    创建另一个兄弟用来接收数据:

    1. <script>
    2. import bus from "@/common/bus";
    3. export default {
    4. name: "SonBoder",
    5. data() {
    6. return {
    7. str: ""
    8. };
    9. },
    10. mounted() {
    11. bus.$on("SonBoder",(data) => {
    12. this.str = data;
    13. });
    14. },
    15. };
    16. script>
    17. <style scoped>style>

     

     

  • 相关阅读:
    maven的私服
    JVM原理及优化_垃圾回收算法
    录屏软件哪个好?比较好用的录屏软件,这4款值得一试!
    royi-vue
    Hbase数据库安装部署
    SQL Server、MySQL主从搭建,EF Core读写分离代码实现
    KWin、libdrm、DRM从上到下全过程 —— drmModeAddFBxxx(20)
    java计算机毕业设计基于springboot校园新闻网站
    H5游戏开发-搭建开发环境
    AI 学习时代:大语言模型领域的行业术语解析
  • 原文地址:https://blog.csdn.net/qq_65715980/article/details/126236635