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 相关文章推荐
正则表达式判断是否存在中文和全角字符和判断包含中文字符串长度
Sep 27 Javascript
JS函数验证总结(方便js客户端输入验证)
Oct 29 Javascript
javascript学习笔记(七) js函数介绍
Jun 19 Javascript
使用AngularJS创建自定义的过滤器的方法
Jun 18 Javascript
简单总结JavaScript中的String字符串类型
May 26 Javascript
AngularJS 实现JavaScript 动画效果详解
Sep 08 Javascript
AngularJS 过滤器(自带和自建)详解
Sep 19 Javascript
JSON与JS对象的区别与对比
Mar 01 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
May 22 Javascript
Angularjs之ngModel中的值验证绑定方法
Sep 13 Javascript
使用Vant完成Dialog弹框案例
Nov 11 Javascript
vue中使用mockjs配置和使用方式
Apr 06 Vue.js
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中的函数嵌套层数限制分析
2011/06/13 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
jquery imgareaselect 使用利用js与程序结合实现图片剪切
2009/07/30 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
jQuery EasyUI之DataGrid使用实例详解
2016/01/04 Javascript
JQUERY表单暂存功能插件分享
2016/02/23 Javascript
基于vue 添加axios组件,解决post传参数为null的问题
2018/03/05 Javascript
如何使node也支持从url加载一个module详解
2018/06/05 Javascript
打通前后端构建一个Vue+Express的开发环境
2018/07/17 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
vue请求本地自己编写的json文件的方法
2019/04/25 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
[46:03]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
浅谈python中scipy.misc.logsumexp函数的运用场景
2016/06/23 Python
利用Tkinter和matplotlib两种方式画饼状图的实例
2017/11/06 Python
Python设计模式之中介模式简单示例
2018/01/09 Python
Python简单实现网页内容抓取功能示例
2018/06/07 Python
python tkinter库实现气泡屏保和锁屏
2019/07/29 Python
Pycharm生成可执行文件.exe的实现方法
2020/06/02 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
PyChon中关于Jekins的详细安装(推荐)
2020/12/28 Python
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
同程旅游英文网站:LY.com
2018/11/13 全球购物
Brasty波兰:香水、化妆品、手表网上商店
2019/04/15 全球购物
财务管理职业生涯规划范文
2013/12/27 职场文书
数控专业个人求职信范文
2014/02/05 职场文书
感恩节红领巾广播稿
2014/02/11 职场文书
做一个有道德的人演讲稿
2014/05/14 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
综合测评自我评价
2015/03/06 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
MySQL中优化SQL语句的方法(show status、explain分析服务器状态信息)
2022/04/09 MySQL