• 第十九节——vue内置组件


    Vue提供了一些内置的组件,这些组件可以在Vue应用中直接使用,无需额外安装或配置。以下是一些常见的Vue内置组件

    一、 和 <transition-group>

    1、概念

    组件用于在元素插入或移除时应用过渡效果,例如淡入淡出、滑动等效果。 组件用于在多个元素同时插入或移除时应用过渡效果,并为每个元素添加唯一的过渡类名。这些组件提供了丰富的过渡效果和过渡钩子函数,使得在Vue应用中实现动画效果变得更加容易

    2、参数

    name 属性

    name 属性用于指定过渡的名称,它在定义过渡样式和钩子函数时非常有用。通过为过渡样式类名添加 name 的前缀,可以确保不同过渡之间的样式不会相互冲突。同时,name 也用于在过渡钩子函数中标识当前过渡的名称,以便在需要时进行特定处理。

    tag 属性

    tag 属性用于指定过渡组件渲染的标签。默认情况下, 组件渲染为一个 span 标签,而 组件渲染为一个 span 包裹的 span 标签。通过设置 tag 属性,你可以指定渲染为其他的标签,如 div、ul、ol 等,以满足你的实际需求

    3、例子

    1. <template>
    2. <div>
    3. <button @click="addItem">Add Item</button>
    4. <button @click="removeItem">Remove Item</button>
    5. <transition-group name="a" tag="ul">
    6. <li v-for="item in items" :key="item.id">
    7. {{ item.text }}
    8. </li>
    9. </transition-group>
    10. </div>
    11. </template>
    12. <script>
    13. export default {
    14. data() {
    15. return {
    16. items: [
    17. { id: 1, text: "Item 1" },
    18. { id: 2, text: "Item 2" },
    19. { id: 3, text: "Item 3" },
    20. ],
    21. nextId: 4,
    22. };
    23. },
    24. methods: {
    25. addItem() {
    26. this.items.push({ id: this.nextId, text: `Item ${this.nextId}` });
    27. this.nextId++;
    28. },
    29. removeItem() {
    30. this.items.pop();
    31. },
    32. },
    33. };
    34. </script>
    35. <style>
    36. /*
    37. 激活时的过渡效果
    38. a 为 name定义的值
    39. -enter-active这部分写死
    40. 过渡效果需要自己写
    41. */
    42. .a-enter-active,
    43. .a-leave-active {
    44. transition: opacity 0.5s;
    45. }
    46. .a-enter,
    47. .a-leave-to {
    48. opacity: 0;
    49. }
    50. </style>

    二、

    1、概念

    组件用于动态地渲染组件,根据不同的条件或数据选择性地渲染不同的组件。它可以接收一个组件的名称或组件对象,并根据指定的组件动态地渲染内容

    2、参数

    is

    is 属性是 组件的一个特殊属性,用于指定要渲染的组件或组件的名称。

    通过使用 is 属性,我们可以实现动态组件的渲染,即根据数据的变化在运行时选择不同的组件进行渲染。这对于根据用户的操作或其他条件切换不同的视图非常有用

    3、例子

    根据选择动态渲染对应的组件

    1. <template>
    2. <div>
    3. <select v-model="selectedComponent">
    4. <option value="ComponentA">Component A</option>
    5. <option value="ComponentB">Component B</option>
    6. <option value="ComponentC">Component C</option>
    7. </select>
    8. <component :is="selectedComponent"></component>
    9. </div>
    10. </template>
    11. <script>
    12. import ComponentA from './ComponentA.vue';
    13. import ComponentB from './ComponentB.vue';
    14. import ComponentC from './ComponentC.vue';
    15. export default {
    16. data() {
    17. return {
    18. selectedComponent: 'ComponentA'
    19. };
    20. },
    21. components: {
    22. ComponentA,
    23. ComponentB,
    24. ComponentC
    25. }
    26. }
    27. </script>

    三、

    1、概念

    组件用于缓存动态组件,以便在组件切换时保留其状态或避免重新渲染。它会缓存被包裹的组件的实例,并在组件切换时保持实例的状态,以提高应用的性能和响应性

    2、参数

    include缓存name为xxx的组件
    exclude不缓存name为xxx的组件

    3、例子

    1. <template>
    2. <div>
    3. <select v-model="selectedComponent">
    4. <option value="ComponentA">Component A</option>
    5. <option value="ComponentB">Component B</option>
    6. <option value="ComponentC">Component C</option>
    7. </select>
    8. <keep-alive>
    9. <component :is="selectedComponent"></component>
    10. </keep-alive>
    11. </div>
    12. </template>
    13. <script>
    14. import ComponentA from './ComponentA.vue';
    15. import ComponentB from './ComponentB.vue';
    16. import ComponentC from './ComponentC.vue';
    17. export default {
    18. data() {
    19. return {
    20. selectedComponent: 'ComponentA'
    21. };
    22. },
    23. components: {
    24. ComponentA,
    25. ComponentB,
    26. ComponentC
    27. }
    28. }
    29. </script>

    4、相关生命周期

    1. export default {
    2. activated() {
    3. // activated 每次进入缓存也都都会执行
    4. },
    5. deactivated() {
    6. // 缓存组件被销毁时调用
    7. }
    8. }

    四、

    1、概念

    它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去。这类场景最常见的例子就是全屏的模态框

    2、参数

    to

    指定传送的目标。to 的值可以是一个 CSS 选择器字符串,也可以是一个 DOM 元素对象。

    3、例子

    1. <button @click="open = true">Open Modal</button>
    2. <Teleport to="body">
    3. <div v-if="open" class="modal">
    4. <p>Hello from the modal!</p>
    5. <button @click="open = false">Close</button>
    6. </div>
    7. </Teleport>

    五、

    插糟同插槽那节课

    六、

    组件用于在Vue路由中渲染匹配到的组件,根据当前的路由状态动态地渲染对应的组件内容。 组件用于生成路由链接,提供了一种声明式的方式来导航到不同的路由

  • 相关阅读:
    《Go语言在微服务中的崛起:为什么Go是下一个后端之星?》
    分享:第十届“泰迪杯”数据挖掘挑战赛优秀作品--A1-基于深度学习的农田害虫定位与识别研究(一)
    ChatGPT可以取代搜索引擎吗?
    CentOS7安装telnet服务
    和平精英官方网站静态页面制作与学习html+css保姆级教程
    Apache OFBiz 路径遍历导致RCE漏洞复现(CVE-2024-36104)
    【HCIP】BGP 特性
    032-JAVA窗体图形图像处理(Graphics绘图,五子棋游戏实战)
    springboot企业人力资源管理系统毕业设计源码291816
    【趣味实践】自动补帧算法——RIFE的使用
  • 原文地址:https://blog.csdn.net/weixin_57017198/article/details/134063979