子组件

<div class="row">
        <div class="options">
          <div class="">
            <div
              v-for="(item, index) in oDiv"
              :key="index"
              @click="s(item.name)"
              :class="{ active: active == item.name }"
            >
              {{ item.name }}
            </div>
          </div>
          <component :is="currentTabComponent"></component>
        </div>
</div>
import burse from "@/view/personalCenter/burse.vue";
import collect from "@/view/personalCenter/collect.vue";
import coupon from "@/view/personalCenter/coupon.vue";
import dynamic from "@/view/personalCenter/dynamic.vue";
import enjoy from "@/view/personalCenter/enjoy.vue";
import indent from "@/view/personalCenter/indent.vue";

export default {
    name: 'personage',
    components: { burse,collect,coupon,dynamic,enjoy,indent},
    data(){
        return{
          //头像上传
          imageUrl:require("@/assets/img/personalCenter/photo.png"),
          //修改昵称
          input: '这是我的昵称',
          //手机号
          input1:'123****1234',
          //选项
          active: "我的订单",
          currentTabComponent: "indent",
          oDiv: [
            {
              name: "我的订单",
            },
            {
              name: "我的钱包",
            },
            {
              name: "我的收藏",
            },
            {
              name: "我的动态",
            },
            {
              name: "优惠券",
            },
            {
              name: "猜你喜欢",
            },
          ],
          
        }
    },
    methods:{
        s(data) {
          this.active = data;
          switch (data) {
            case "我的订单":
              this.currentTabComponent = "indent";
              break;
            case "我的钱包":
              this.currentTabComponent = "burse";
              break;
            case "我的收藏":
              this.currentTabComponent = "collect";
              break;
            case "我的动态":
              this.currentTabComponent = "dynamic";
              break;
            case "优惠券":
              this.currentTabComponent = "coupon";
              break;
            case "猜你喜欢":
              this.currentTabComponent = "enjoy";
            break;
          }
        },
    }
}

 

Vue.js中,父组件组件是通过组件化的特性相互关联的。父组件可以包含、引用或嵌套组件,而组件则可以像普通元素一样被插入到父组件的模板中。 **父组件调用组件**: 在Vue中,你可以在父组件的HTML模板中声明并使用组件。比如,假设有一个`FatherComponent`,它想显示一个名为`ChildComponent`的组件,只需这样: ```html <template> <div> <h1>这是父组件</h1> <child-component></child-component> <!-- 这里引用了组件 --> </div> </template> <script> import ChildComponent from './ChildComponent.vue'; // 引入组件文件 export default { components: { // 注册组件 ChildComponent } }; </script> ``` 在这个例中,`<child-component>`标签就是对`ChildComponent`的实例化。 **组件与父组件通信**: 组件可以通过事件(`$emit`)将信息发送给父组件,而父组件可以通过`v-on`监听这些事件并作出响应。另外,也可以通过props将数据从父组件传给组件。 ```html <!-- 组件中触发事件 --> <button @click="$emit('custom-event', 'Hello from Child!')">点击我</button> // 父组件中监听事件并处理 <child-component :message="parentMessage" @custom-event="handleCustomEvent"></child-component> ``` 在这里,组件的点击事件会触发`custom-event`,并将一个字符串传递给父组件,`handleCustomEvent`函数会在父组件内执行,并接收这个消息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值