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 相关文章推荐
Javascript学习笔记8 用JSON做原型
Jan 11 Javascript
js 分页全选或反选标识实现代码
Aug 09 Javascript
js 关于=+与+=日期函数使用说明(赋值运算符)
Nov 15 Javascript
jQuery xml字符串的解析、读取及查找方法
Mar 01 Javascript
JS+HTML5手机开发之滚动和惯性缓动实现方法分析
Jun 12 Javascript
js模态对话框使用方法详解
Feb 16 Javascript
JS实现的随机排序功能算法示例
Jun 09 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
May 22 Javascript
JS基于封装函数实现的表格分页完整示例
Jun 26 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
Jul 25 Javascript
vue vant Area组件使用详解
Dec 09 Javascript
js实现简易点击切换显示或隐藏
Nov 29 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 采集程序原理分析篇
2010/03/05 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
PHP empty函数报错解决办法
2014/03/06 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
PHP中静态变量的使用方法实例分析
2016/12/01 PHP
laravel返回统一格式错误码问题
2019/11/04 PHP
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
document.documentElement的一些使用技巧
2013/04/18 Javascript
javaScript实现浮点数转十六进制字符
2013/10/29 Javascript
Jquery实现自定义tooltip示例代码
2014/02/12 Javascript
JS动态改变表格边框宽度的方法
2015/03/31 Javascript
nodejs实现HTTPS发起POST请求
2015/04/23 NodeJs
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
快速解决select2在bootstrap模态框中下拉框隐藏的问题
2018/08/10 Javascript
jQuery扩展方法实现Form表单与Json互相转换的实例代码
2018/09/05 jQuery
小程序实现多选框功能
2018/10/30 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[03:14]2014DOTA2西雅图国际邀请赛 EG战队巡礼
2014/07/07 DOTA
[01:19:46]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第一场 2月28日
2021/03/11 DOTA
Python struct.unpack
2008/09/06 Python
python获得图片base64编码示例
2014/01/16 Python
Python编程实现微信企业号文本消息推送功能示例
2017/08/21 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
Python登录注册验证功能实现
2018/06/18 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
Python web框架(django,flask)实现mysql数据库读写分离的示例
2020/11/18 Python
css3.0 图形构成实例练习一
2013/03/19 HTML / CSS
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
外企办公室竞聘演讲稿
2013/12/29 职场文书
公司员工检讨书
2014/02/08 职场文书
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL
python中pd.cut()与pd.qcut()的对比及示例
2022/06/16 Python
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python