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基础知识大全 便于大家学习,也便于我自己查看
Aug 17 Javascript
THREE.JS入门教程(2)着色器-上
Jan 24 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
Aug 02 Javascript
js判断浏览器类型及设备(移动页面开发)
Jul 30 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
Jun 13 Javascript
AngularJs html compiler详解及示例代码
Sep 01 Javascript
解决Window10系统下Node安装报错的问题分析
Dec 13 Javascript
使用BootStrap实现表格隔行变色及hover变色并在需要时出现滚动条
Jan 04 Javascript
vue的列表交错过渡实现代码示例
May 05 Javascript
vue 父组件通过$refs获取子组件的值和方法详解
Nov 07 Javascript
JavaScript 常见的继承方式汇总
Sep 17 Javascript
Typescript类型系统FLOW静态检查基本规范
May 25 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 程序员应该使用的10个组件
2009/10/31 PHP
php一个找二层目录的小东东
2012/08/02 PHP
php使用文本统计访问量的方法
2016/05/12 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
thinkPHP2.1自定义标签库的导入方法详解
2016/07/20 PHP
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
JS DOM 操作实现代码
2010/08/01 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
jquery一般方法介绍 入门参考
2011/06/21 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
windows8.1+iis8.5下安装node.js开发环境
2014/12/12 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
Vue开发过程中遇到的疑惑知识点总结
2017/01/20 Javascript
深入学习 JavaScript中的函数调用
2017/03/23 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
AngularJS使用$http配置对象方式与服务端交互方法
2018/08/13 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
Vue.js 无限滚动列表性能优化方案
2019/12/02 Javascript
解决 window.onload 被覆盖的问题方法
2020/01/14 Javascript
JavaScript实现alert弹框效果
2020/11/19 Javascript
[01:33:25]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第一场 1月24日
2021/03/11 DOTA
python 实现删除文件或文件夹实例详解
2016/12/04 Python
Python设计模式之组合模式原理与用法实例分析
2019/01/11 Python
解决pycharm remote deployment 配置的问题
2019/06/27 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
英国著名的茶叶品牌:Whittard of Chelsea
2016/09/22 全球购物
伦敦最有品味的百货:Liberty London
2016/11/12 全球购物
老公给老婆的检讨书(精华篇)
2014/10/18 职场文书
人事主管岗位职责
2015/02/04 职场文书
pytorch加载预训练模型与自己模型不匹配的解决方案
2021/05/13 Python
Python Matplotlib绘制条形图的全过程
2021/10/24 Python
SQL基础查询和LINQ集成化查询
2022/01/18 MySQL
Python学习之异常中的finally使用详解
2022/03/16 Python