Vue 动态组件components和v-once指令的实现


Posted in Javascript onAugust 30, 2019

一、实现两个组件间互相展示、互相隐藏

<!DOCTYPE html>
<html>
<head>
  <title>动态组件</title>
  <script type="text/javascript" src="./vue-dev.js"></script>
</head>
<body>
  <div id="app">
    <child-one v-if="type=='child-one'" content="child-one"></child-one>
    <child-two v-if="type=='child-two'" content="child-two"></child-two>
    <button @click="handleChangeEvent">change</button>
  </div>
  <script type="text/javascript">
  Vue.component('child-one', {
    props: ["content"],
    template: `<div>{{content}}</div>`,
  });

   Vue.component('child-two', {
    props: ["content"],
    template: `<div>{{content}}</div>`,
  })

  var vm = new Vue({
    el: '#app',
    data(){
    	return{
    		type:'child-one'
    	}
    },
    methods:{
    	handleChangeEvent:function(){
    		this.type= this.type=="child-one" ? 'child-two':'child-one';
    	}
    }

  })
  </script>
</body>
</html>

页面效果图如下:

Vue 动态组件components和v-once指令的实现 

二、动态组件,简化页面代码

使用:父组件 dom标签使用 ,对组件名称进行绑定

<div id="app">
    <!-- <child-one v-if="type=='child-one'" content="child-one"></child-one>
    <child-two v-if="type=='child-two'" content="child-two"></child-two> -->

     <!--动态组件标签component 利用is接收指定标签组件-->
    <component :is="type" :content="type"></component>
    <button @click="handleChangeEvent">change</button>
  </div>

无论使用v-if还是components来使用动态组件的实现,都是在点击交互后,每一次页面效果的切换,会自动销毁前一个组件,再重新创建一个组件,页面则显示响应的内容, 这样的实现方式是比较消耗性能的

三、 v-show和v-once

使用v-show,则会只是隐藏在dom元素中,组件都会被创建。

在子组件中,加入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,可以有效提高静态内容的展示效率,提高性能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
Oct 01 Javascript
jQuery学习笔记之jQuery动画效果
Sep 09 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
Nov 24 Javascript
js获取及判断键盘按键的方法
Dec 01 Javascript
利用jQuery设计一个简单的web音乐播放器的实例分享
Mar 08 Javascript
微信小程序 数组(增,删,改,查)等操作实例详解
Jan 05 Javascript
浅谈angular4实际项目搭建总结
Dec 01 Javascript
详解ajax的data参数错误导致页面崩溃
Apr 30 Javascript
对angularJs中$sce服务安全显示html文本的实例
Sep 30 Javascript
jquery拖拽自动排序插件使用方法详解
Jul 20 jQuery
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
JavaScript最完整的深浅拷贝实现方式详解
Feb 28 Javascript
java实现单链表增删改查的实例代码详解
Aug 30 #Javascript
vuex vue简单使用知识点总结
Aug 29 #Javascript
js中的this的指向问题详解
Aug 29 #Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
Aug 29 #Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 #Javascript
微信小程序实现购物车代码实例详解
Aug 29 #Javascript
vue图片加载失败时用默认图片替换的方法
Aug 29 #Javascript
You might like
教你如何使用php session
2013/10/28 PHP
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
php实现算术验证码功能
2018/12/05 PHP
Laravel 框架基于自带的用户系统实现登录注册及错误处理功能分析
2020/04/14 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
javascript getElementsByClassName实现代码
2010/10/11 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
2016/03/25 Javascript
confirm确认对话框的实现方法总结
2016/06/17 Javascript
JavaScript仿聊天室聊天记录
2016/12/27 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
node之本地服务器图片上传的方法示例
2019/03/26 Javascript
使用webpack搭建vue项目及注意事项
2019/06/10 Javascript
vue.js的简单自动求和计算实例
2019/11/08 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
[56:57]LGD vs VP 2019DOTA2国际邀请赛淘汰赛 胜者组赛BO3 第一场 8.20.mp4
2019/08/22 DOTA
pymongo给mongodb创建索引的简单实现方法
2015/05/06 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Python OpenCV实现测量图片物体宽度
2020/05/27 Python
护理专业个人求职简历的自我评价
2013/10/13 职场文书
入党积极分子思想汇报
2014/01/02 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
关于热爱祖国的演讲稿
2014/05/04 职场文书
初三语文教学计划
2015/01/22 职场文书
手术室消毒隔离制度
2015/08/05 职场文书
2016消防宣传标语口号
2015/12/26 职场文书
React Native项目框架搭建的一些心得体会
2021/05/28 Javascript
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL
MySQL定时备份数据库(全库备份)的实现
2021/09/25 MySQL
MySQL空间数据存储及函数
2021/09/25 MySQL