初识 Vue(21)---(Vue中的动态组件与v-once指令)

简介: Vue中的动态组件与v-once指令案例:点击按钮,child-one 变成 child-two;child-two 变成 child-one Vue中的动态组件与v-once指令 ...

Vue中的动态组件与v-once指令

案例:点击按钮,child-one 变成 child-two;child-two 变成 child-one

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue中的动态组件与v-once指令</title>
    <script src = './vue.js'></script>
</head>
<body>
    <div id ='root'>
       <child-one v-if="type ==='child-one'">
            
       </child-one>
       <child-two v-if="type ==='child-two'">

       </child-two>
       <button @click="handleBtnClick">change</button>
    </div>
    <script>
    
       Vue.component('child-one',{
            template:'<div>child-one</div>'        
       })
        Vue.component('child-two',{
            template:'<div>child-two</div>'        
       })

       var vm = new Vue({
        el:'#root',
        data:{
            type:'child-one'
        },
        methods:{
            handleBtnClick:function(){
                this.type = (this.type ==='child-one' ? 'child-two' : 'child-one');
            }
        }
       })
    </script>   
</body>
</html>

输出:

   

方法二:动态组件

<component></component> 就是动态组件

<body>
    <div id ='root'>
        <component :is="type"></component>
       <button @click="handleBtnClick">change</button>
    </div>

输出:完全和上面一样

   

动态组件:根据 is 里面数据的变化自动的加载不同的组件,在本例中,type 刚开始是 type-one ,这时动态组件就会显示

child-one 这个组件,点击按钮之后,child-noe 变成了 child-two , is 发现 type 中的值变成了  child-two ,就会将 child-noe 销毁,显示 child-two组件;

 

v-once

运用动态组件:(每次点击,在 Vue 底层都会销毁一次组件,创建一次组件,这样会消耗内存)使用 v-once 可减少内存损耗

 Vue.component('child-one',{
            template:'<div v-once>child-one</div>'        
       })
        Vue.component('child-two',{
            template:'<div v-once>child-two</div>'        
       })

将 v-once 写入 子组件中,在第一次运行时,会将 child-one 和 child-two 存入内存中,不会销毁;当下次再次调用时,直接从内存中拿出来,不需要再次创建组件,减少 内存 损耗,可以有效提高静态内存展示效率

目录
相关文章
|
3月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
367 2
|
2月前
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
336 137
|
6月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
852 0
|
5月前
|
人工智能 JSON JavaScript
VTJ.PRO 首发 MasterGo 设计智能识别引擎,秒级生成 Vue 代码
VTJ.PRO发布「AI MasterGo设计稿识别引擎」,成为全球首个支持解析MasterGo原生JSON文件并自动生成Vue组件的AI工具。通过双引擎架构,实现设计到代码全流程自动化,效率提升300%,助力企业降本增效,引领“设计即生产”新时代。
496 1
|
5月前
|
JavaScript 安全
在 Vue 中,如何在回调函数中正确使用 this?
在 Vue 中,如何在回调函数中正确使用 this?
312 0
|
8月前
|
JavaScript
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
1098 4
|
6月前
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
7月前
|
JavaScript 数据可视化 前端开发
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
990 77
|
8月前
|
缓存 JavaScript 前端开发
Vue 基础语法介绍
Vue 基础语法介绍
|
6月前
|
JavaScript 前端开发 开发者
Vue 自定义进度条组件封装及使用方法详解
这是一篇关于自定义进度条组件的使用指南和开发文档。文章详细介绍了如何在Vue项目中引入、注册并使用该组件,包括基础与高级示例。组件支持分段配置(如颜色、文本)、动画效果及超出进度提示等功能。同时提供了完整的代码实现,支持全局注册,并提出了优化建议,如主题支持、响应式设计等,帮助开发者更灵活地集成和定制进度条组件。资源链接已提供,适合前端开发者参考学习。
510 17

热门文章

最新文章