VUE3 之 动态组件 - 这个系列的教程通俗易懂,适合新手
1. 概述
暗示效应告诉我们:
巧妙的暗示会在不知不觉中剥夺我们的判断力,对我们的思维形成一定的影响,造成我们行为的些许改变或者偏差。
例如你的朋友说你脸色不太好,是不是病了,此时,你可能就会感觉浑身不舒服、头重脚轻,想赶紧去看医生。
而如果你的朋友对你说你脸色不太好,应该是没睡好,属于正常现象,一会中午吃点好的,再睡个午觉就没事了,你可能就会感觉只是小事情,不会去在意。
积极的暗示,是有利于身心健康的,因此我们要时刻保持正能量,多对自己做积极的暗示。
言归正传,今天我们来聊聊 VUE 的动态组件。
2. 动态组件
2.1 一个简单的提交例子
<body>
<div id="myDiv"></div>
</body>
<script>
const app = Vue.createApp({ template:`
<my-input />
<my-div />
<button>提交</button>
`
});
app.component("my-input", { template: `
<input />
`
});
app.component("my-div", { template: `
<div>
提交成功
</div>
`
});
const vm = app.mount("#myDiv");
这是一个简单的提交例子,需要实现的效果是:“提交成功”几个字先隐藏,我们在文本框中填写内容,点击提交按钮,文本框隐藏,显示“提交成功”几个字,按钮由【提交】变为【重新编辑】
当点击【重新编辑】时,文本框显示,“提交成功”几个字隐藏,按钮由【重新编辑】变为【提交】
2.2 使用 v-show 实现
咱们先使用之前学的 v-show 的语法实现上面的需求
const app = Vue.createApp({
data() {
return {
showCom : "my-input",
buttonName : "提交"
}
},
methods : {
changeInputStatus() {
if(this.showCom === 'my-input') {
this.showCom = "my-div";
this.buttonName = "重新编辑";
} else {
this.showCom = "my-input";
this.buttonName = "提交";
}
}
},
template:`
<my-input v-show="showCom === 'my-input'" />
<my-div v-show="showCom === 'my-div'" />
<button @click="changeInputStatus">{{buttonName}}</button>
`
}); app.component("my-input", { template: `
<div>
<input />
</div>
`
}); app.component("my-div", { template: `
<div>
提交成功
</div>
`
});
很明显,用 v-show 的语法是可以实现的,我们只需修改 data 中的 showCom 的值,就能实现组件的隐藏和显示
2.3 使用动态组件实现
const app = Vue.createApp({
data() {
return {
showCom : "my-input",
buttonName : "提交"
}
},
methods : {
changeInputStatus() {
if(this.showCom === 'my-input') {
this.showCom = "my-div";
this.buttonName = "重新编辑";
} else {
this.showCom = "my-input";
this.buttonName = "提交";
}
}
},
template:`
<component :is="showCom" />
<button @click="changeInputStatus">{{buttonName}}</button>
`
});
使用 <component :is="showCom" /> 动态组件标签,将组件与数据 showCom 绑定,showCom 的值,必须是组件的名字,名字是哪个组件,component 就转变成哪个组件
但似乎有点问题,点击【重新编辑】重新显示文本框后,文本框中输入的内容不见了,我们希望文本框中的内容还在
2.4 使用动态组件实现,保留文本框内容
const app = Vue.createApp({
data() {
return {
showCom : "my-input",
buttonName : "提交"
}
},
methods : {
changeInputStatus() {
if(this.showCom === 'my-input') {
this.showCom = "my-div";
this.buttonName = "重新编辑";
} else {
this.showCom = "my-input";
this.buttonName = "提交";
}
}
},
template:`
<keep-alive>
<component :is="showCom" />
</keep-alive>
<button @click="changeInputStatus">{{buttonName}}</button>
`
});
在 component 标签外面包裹一层 keep-alive 标签,文本框的内容就可以保留了
3. 综述
今天聊了一下 VUE3 的 动态组件的使用,希望可以对大家的工作有所帮助,下一节我们继续讲组件的相关知识,敬请期待
欢迎帮忙点赞、评论、转发、加关注 :)
关注追风人聊Java,每天更新Java干货。
4. 个人公众号
追风人聊Java,欢迎大家关注
VUE3 之 动态组件 - 这个系列的教程通俗易懂,适合新手的更多相关文章
- VUE3 之 作用域插槽 - 这个系列的教程通俗易懂,适合新手
1. 概述 破窗效应告诉我们: 当一个建筑物窗户的玻璃完好无损时,很少有人想去破坏它,当有一个人破坏了一块窗户的玻璃,其他窗户的玻璃也很快会被人破坏. 同理,一个很干净的地方,人们不好意思去丢垃圾,但 ...
- VUE3 之 列表动画 - 这个系列的教程通俗易懂,适合新手
1. 概述 老话说的好:可以为别人解决痛点的产品就是好产品. 言归正传,今天我们来聊聊 VUE 的列表动画. 2. 列表动画 2.1 列表中增加和删除元素 <style> .my-ite ...
- VUE3 之 状态动画 - 这个系列的教程通俗易懂,适合新手
1. 概述 老话说的好:不用羡慕别人,每个人都有属于自己的人生道路,重要的是在前进道路上遇见阻碍时,如何去积极的面对并解决. 言归正传,今天我们来聊聊 VUE 的状态动画. 2. 状态动画 2.1 数 ...
- VUE3 之 多个 v-model 绑定及 v-model 修饰符的使用 - 这个系列的教程通俗易懂,适合新手
1. 概述 洛克定律告诉我们: 当我们的目标很远大,远到我们都看不到终点时,放弃几率就会很大,就像跑马拉松比赛,由于时间长.距离长,很多选手都会选择在中途放弃. 其实有个好办法,就是拆分,把大目标拆分 ...
- VUE3 之 插槽的使用 - 这个系列的教程通俗易懂,适合新手
1. 概述 非理性定律告诉我们: 人们总是习惯于以情感去判断眼前的事物,非理性的去做决定. 对于长远的利益,人们更愿意去选择短期的利益. 因此在做决定前要让自己冷静,理性的分析,让自己看的更远. 言归 ...
- VUE3 之 ref、provide、inject 的使用 - 这个系列的教程通俗易懂,适合新手
1. 概述 首因效应告诉我们: 在日常交往中,第一印象是非常重要的,好的第一印象能让我们在与人相处时事半功倍. 但也从另一面告诉我们,不能仅凭第一印象去判断一个人,有时虚假的第一印象,也有可能蒙蔽我们 ...
- VUE3 之 使用 Mixin 实现代码的复用 - 这个系列的教程通俗易懂,适合新手
1. 概述 老话说的好:舍得舍得,先舍才能后得. 言归正传,今天我们来聊聊 VUE 中使用 Mixin 实现代码的复用. 2. Mixin 的使用 2.1 不使用 Mixin 的写法 <body ...
- VUE3 之 全局 Mixin 与 自定义属性合并策略 - 这个系列的教程通俗易懂,适合新手
1. 概述 老话说的好:心态决定命运,好心态才能有好的命运. 言归正传,今天我们来聊聊 VUE 中的全局 Mixin 与 自定义属性合并策略. 2. Mixin 的使用 2.1 全局 Mixin 之前 ...
- VUE3 之 动画与过渡的实现 - 这个系列的教程通俗易懂,适合新手
1. 概述 光环效应告诉我们: 当一个人在某一方面取得了巨大的成功,人们就会给他贴上正面的标签,这个人从此就被"优秀"的光环所笼罩,他做的一切,人们都认为是正确的. 例如:越是名气 ...
随机推荐
- Python基础案例练习:制作学生信息管理系统
一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...
- CAP原理详解
转载 https://blog.csdn.net/u013332124/article/details/82874178 文章目录 一.CAP原理介绍 对CAP原理的一些常见的理解误区 二.CAP原理 ...
- mysql 连接表 内连接 inner
字段去重 关键字distinct 去除重复记录 可配合分组函数使用 select distinct job,deptno from emp; 未使用 distinct之前 使用后: 笛卡尔积现象:当 ...
- test_4 实现一个统计函数运行时间
1.datetime显示当前时间 import datetimeimport timedef func(): t = datetime.datetime.now() print t print &qu ...
- 推荐一个最懂程序员的google插件
0.前言 很多人应该也和我一样,使用google浏览器时,它的主页是真不咋地,太单调了,用起来贼不爽,想整它很久了 一打开就是上面的样子,让我看起来真心真心不爽 当然:为了这个不关技术的瞎犊子事情,曾 ...
- 配置vscode的C++环境Unexpected GDB output from command "-environment-cd
原因 中文字符 换成D盘目录下以后.
- 将Cesium ion上的3D Tiles和Bing imagery应用到osgEarth
Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ Pelican Mapping 激动的宣布支持加载Cesium ...
- Scala统计一个文件所有单词出现的次数
1 import scala.io.Source 2 3 object WordCount extends App { 4 5 val path = "C:\\Users\\Administ ...
- php中关于数据库的操作
php中对数据库的操作,举例如下: //连接到本地mysql数据库 $myconn=mysql_connect("localhost","root"," ...
- 学习axios必知必会(1)~axios基本介绍、axios配置、json-server接口模拟工具
一.axios基本介绍 1.axios(前端最流行的 ajax 请求库) 特点: ① 基于 xhr + promise 的异步 ajax 请求库 ② 浏览器端/node 端都可以使用 ③ 支持请求/响 ...