初识 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 存入内存中,不会销毁;当下次再次调用时,直接从内存中拿出来,不需要再次创建组件,减少 内存 损耗,可以有效提高静态内存展示效率

目录
相关文章
|
2天前
|
Web App开发 JavaScript 开发者
Vue工具和生态系统:什么是Vue DevTools?如何使用它?
Vue Devtools是Vue.js官方的浏览器扩展,用于简化应用调试和优化。可在Chrome和Firefox等浏览器上安装,集成到开发者工具中。安装步骤包括下载源码、npm安装、修改manifest.json并加载编译后的扩展。启用后,开发者能查看Vue组件树,检查属性,并在允许的情况下编辑data,提升开发效率。
5 0
|
3天前
|
JavaScript 测试技术
vue不同环境打包环境变量处理
vue不同环境打包环境变量处理
13 0
|
3天前
|
JavaScript
vue中高精度小数问题(加减乘除方法封装)处理
vue中高精度小数问题(加减乘除方法封装)处理
14 0
|
3天前
|
JavaScript
vue项目使用可选链操作符编译报错问题
vue项目使用可选链操作符编译报错问题
8 0
|
3天前
|
JavaScript
Vue项目启动报错处理
Vue项目启动报错处理
6 1
|
3天前
|
JavaScript 定位技术
vue项目开发笔记记录(二)
vue项目开发笔记记录
34 0
|
3天前
|
JSON JavaScript API
vue项目开发笔记记录(一)
vue项目开发笔记记录
34 0
|
3天前
|
JavaScript
Vue-实现点击空白处隐藏某节点
Vue-实现点击空白处隐藏某节点
10 1
|
3天前
|
缓存 JavaScript 前端开发
vue项目实战:实战技巧总结(中)
vue项目实战:实战技巧总结
29 1
|
7天前
|
JavaScript 搜索推荐 测试技术
深入了解 Vue CLI:现代化 Vue.js 项目开发工具
深入了解 Vue CLI:现代化 Vue.js 项目开发工具