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

插槽、生命周期

##### 购物车加减操作关键代码

```vue

<template>

        <tr v-for="(item,index) in products">

            <input type="button" value="-" @click="btnA(index)">

            <input type="text" v-model="item.quantity">

            <input type="button" value="+" @click="btnB(index)">

            <input type="button" value="移除" @click="btnRemove(index)">

        </tr>

</template>

<script>

    let totlaAmount = computed(()=>{

      let tmp = products.value.reduce((a,b)=>{

        return a += b.price * b.quantity

      },0)

      return tmp

    })

    const btnA = (index) =>{

      products.value[index].quantity --

    }

    const btnB = (index) =>{

      products.value[index].quantity ++

    }

    const btnRemove = (index) =>{

     products.value.splice(index,1)

    }

</script>

```



 

### 笔记

### 插槽(Slots)

1. 概念:在组件中使用 `<slot>` 元素作为占位符,可将父组件传递进来的内容渲染到指定位置。

```vue

<template>

    <ButtonCounter>

      8888

        <Profile></Profile>

    </ButtonCounter>

</template>

<script setup>

import ButtonCounter from './components/ButtonCounter.vue'

import Profile from './components/Profile.vue';

import {ref, shallowRef} from 'vue'

// let cc = ref(ButtonCounter)

let cc = shallowRef(ButtonCounter)

let count = 1

function btn(){

  count ++

  if(count % 2 === 0){

    cc.value = Profile

  }else{

    cc.value = ButtonCounter

  }

}

</script>

```

2. [动态组件]实现方式:通过 Vue 的 `<component>` 元素和特殊的 `is` attribute 来实现组件的动态切换

```vue

<template>

  <component :is="cc"></component>

  <input type="button" value="点下" @click="btn">

</template>

```

### 生命周期钩子

- 概念:每个 Vue 组件实例在创建时会经历一系列初始化步骤,在此过程中会运行生命周期钩子函数,让开发者有机会在特定阶段运行自己的代码

- 常用钩子:onMounted、onUpdated、onUnmounted

- 注册方式:在组件初始化时同步注册生命周期钩子。例如,在 `<script setup>` 中调用 `onMounted()` 等钩子函数

- 注意事项:不要在异步函数中注册生命周期钩子,否则可能导致当前组件实例丢失,钩子无法正常工作




 

http://www.xdnf.cn/news/5131.html

相关文章:

  • QWindowkit 实现无边框,阴影支持系统边栏缩放等功能
  • 深入理解C/C++内存管理:从基础到高级优化实践
  • 2025年数维杯C题数据收集方式分享
  • Vue3 路由配置与跳转传参完整指南
  • 二分系列题
  • 【PhysUnits】3.3 SI 基础量纲单位(units/base.rs)
  • 深入理解 JavaScript 对象与属性控制
  • 少儿编程机构用的教务系统
  • AT9880B北斗单模卫星定位SOC芯片
  • 问题五、扩展模板生成器
  • 【NextPilot日志移植】Logger::run()主循环解析
  • 图像配准简单概述
  • 日常知识点之随手问题整理(思考单播,组播,广播哪个更省带宽)
  • MySQL初阶:数据库约束和表的设计
  • Linux基础(关于进程相关命令)
  • WPDRRC 模型:构建动态闭环的信息安全防御体系
  • 深度学习系统学习系列【8】之设计卷积神经网络架构(Pytorch版本)
  • RHCSA Linux系统软件管理和进程管理
  • flowable-适配其他类型数据库,不修改源码解决方案
  • 位运算(二进制中1的个数)
  • uniapp自定义导航栏搭配插槽
  • Linux的进程与线程
  • 笔记,麦克风的灵敏度
  • Jedis高版本的JedisPoolConfig没有maxActive和maxWait
  • Linux使用Docker部署安装应用
  • Papyrus字体介绍
  • 为什么消息队列系统不像数据库系统那样可以配置读写分离?
  • Docker基础入门:容器化技术详解
  • PH热榜 | 2025-05-09
  • class path resource [] cannot be resolved to absolute file path