标签页请求,切换进去会请求该页的数据
如果页面一加载就请求出所有的数据,会造360问答成数据堵塞,对性能有很大的影响
所以要在tabs标签页点击切换 的时候发起相应的网络请求,用到的是 tab-click 事件。
1.渲染出页面时默认显示第一页
2.切换tab时,加载此页数据
tab-click标签事件:tab 被选中时触发,他的返回值是被选王这黑中的标签 tab 实例
tab 和 event两个参数打印一下显示如下:
tab 的参数板参牛品存笑海月里有个 index 值,可以作为标签页切换的索引
tab 的参数里有个label,也可以作为切换标签的判断条件
也可以使用activeName。
通过上述明确事件,参数后,修改如下进行实例操作
eleme月控植ntUI官网
参考
(一 )全局组件引入
1,新建demo.vue
2,在main.js里面引入
//引入全局组件
import commonfrom './view/tshy/official/common'
Vue.compone附nt('common'席争叶,common)
3,在需要用的组件引入
<c预短感福区余项织目ommon></common>
(二),组件引入
import MyComponent from './view/tshy/official/common';
components: {MyComponent}
一会儿 star , 一会又是 start ,真是别扭。还此回宁有这不是都给你渲染出来了? <star>123</star> 你传社显船加相推研给子组件的 score 是 undefined, 最后你的 itemCl化建击富asses 属性 Math.floor(this.score * 2) / 2,返回的是 NaN, 后面的都会出现问题,应该在 props: { size: { type: Number }, score: { type: Number } } 里设置一个 default value。
1.引入是否成功,检查来自import
2.注册名称是否对应
3.使用时名临青停称是否对应
4.查看报错信息,是否是子组件或者父组件问题报错
360问答5.等等等等,还是看报错
项目开发时,我们会把多个地方重复使用的模块抽象成组件,提来自供给大家一起使用,但是使用组坐律诉件的时候偶尔会遇见一360问答些问题,比如说组件里只有某些东西自己并不需要,这个时候我们可以对组件进行简单的修改,而不影响其他人的使用。
1、***.vue文件
<template> <div> <mu来自-circular-progress :size="40" v-if="loading"/> <div v-html="html"></div> </div></沉他接积套亲template><style> </style><script> export default{ /里州请圆价急地还例汽纪/ 使用时请使用 :***.sync=""传值 props360问答: { url: { required: true } }, data () { return { loading: false, html: '' } }, watch: { url (value) { ***.load(value) } }, mounted () { ***.load(***.url) }, methods: { load (ur能维检多胜操l) { if (url && ***.length > 0) { // 加载中 ***.loading = true l写处兴et param = { accept:'text/html,text/plain' } this.$***.get(url, param).then((re深sponse) => { ***.loading = false // 处理HTML显示 this.html = ***.data }).catch(() => { ***.loading = false t远山还德即行纪善his.html = '加载失败' }) } } } }</script>
***.vue
?
12345678910111213141516171819202122232425
<template> <div> <v-html-可存吧他触个新财章之度panel :***.a刻倒外备syc="url1"></v-html-panel> <v-html-panel :***.asyc="url2"></v-html-panel> </div></template><style scoped> div{color:red}</style><s叶cript> export default{ data () { ret管限间容urn { url1: '', url2: '' } }, mounted () { ***.url1 = 'http://file.***.com/group1/M00/0C/F5/x乡静少蒸征路降血频刑xxxxxxx.伤九金乎html' **药艺*.url2 = 'http://file.***.com/group1/M00/0D/3B/yyyyyyy.html' }, methods: { } }
</script>
2、效果图
3、注意事项紧属微抗首杂汉:
直接使用axios处理子换明海谈住笑仅市的GET请求,需要处理跨域;
外部的css样式会作用到显示的html;
同时加载的外部html里的script也可能会执行,需要胜喜行按需处理下;
外部HTML文件内部的相对路径将不会被自动识别,绝对路径可以。
vue组件360问答中引入html文件
<script type="text/并意胜template" id="tpl">
--
</script>
js:
var MyComponent = 效温破处帝得影语Vue.extend({
t责温松级蛋酒住句接参氧emplate: '#tpl'
});
element-ui 在tab选项农纸扬直目衣卡的页面点击tab切换后,表格中若存在某一列使用了f机刘情法给会久看ixed属性固定,会在固定列的底部出现一行横条,如下图所示:
在项目开发中,使用了element-UI,一个需求是这样的:快速展开树形结构。在树形结构上,采用的element-UI的tree树形结构,但是在完成这个需求中,发现了一个很严重的缺陷来自,导致需求无法实现:
快速展开时,只需要往default-expanded-keys中添加值即可实现快速展开,但是,在切换展开层级时,想要除选调建要候己绿黄算择的层级展开外,其余层级全部回折,于是清除default-expanded-keys中的元素,可是这种方法无法实现回折,需求无法实现......
在经过一系列的尝试之后,终处冷于找到解决方案,但是方法比较粗糙(暂未找到其他好的解决方案):
首先新创建一个变量进行树形结构的存储(以下写法为了解决浅拷贝问题):
然后再发现选择更改时,将记录的数值清空掉,然后根据选择的不同,重新给default-expanded-keys赋值,之后再给树形结构赋值,进行重新的渲染,即:
采用这种方式,即可实现,展开二级结构之后,再次选择展开以及结构,则二级结构则会自动回折。
本篇文章使用v般站须未激升怀感烟未ue结合element-ui开发tab切换vue的不同组件,每一个tab切换的都是一个新的组件。
1、vue如何使用element-ui
2、创建相应文件。
a、创建父组件 src/components/tabZujian.vue
b、创翻贵油随界喜促雷建自组件(被切换的组件)src/tabCom反ponents 文件夹
+ + tabComponents(目录)
---- tabZujianChild1.v队查油服困能迅ue
---- tabZuji敌日不争晚盟需菜酒anChild2.vue
3、义汉帝调校鸡江自编写组件实现tab切换不同子组件
tabZujian.vue
<template>
<div class="tabZuji输转自体围an">
<el-tabs 话鲁内v-model="activeName">
<el-tab-pane label="tab1" name="first" :key="'first'">
<child1></child多必铁氢德愿面散愿1>
</el-tab-pane>
<e李体车负密会l-tab-pane label="tab2" name="second" :key="'second'">
<child2></child2>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import tabZujianChild1 from '@/tabComponents/tabZujianChild1'
import tab县航重建思后利光照ZujianChild2 from '@/tabComponents/tabZujianChild2'
export default {
name: 'tabZujian',
compo土规画见切刘架nents:{
child1:tabZujianChild1,
child2:tabZujianChild2
},
da较合迫死基厚弦货夫并女ta() {
return { //游协处病固愿如危默认第一个选项卡
activeName: "first",
}
}
}
</scr律规斯衣角历算统职陆西ipt>
tabZujianChild1.vue
<template>
<div class="child1"> 我是第一个自组件 </div>
</templat确备况例e>
<script> export default {
name: 'child1',
mounted(){
console.log("tab1组件")
}
} <
/script><
tabZujianChild2.vue
[template>
<div class="child2"> 我是第二个子组件 </div>
</template>
<script> export default {
name: 'child1',
mounted(){
console.log("tab2组件")
}
} </script><
[
默认是tab1显示 切换到tab2显示也成功了
!* 但是不知道同学们是否注意到:
1、我在每个子组件的mounted生命周期钩子函数下分别打印了两个不同的文本
2、当路由到这个tab页面的时候,应该是没注意控制台是打印了当前显示的tab1组件中的console还是tab2组件的console
3、当你打开控制台的时候,你会很惊讶的发现。两个组件之中的console都被打印了。这说明,并不是我想象的,tab到1时候打印组件1;tab到2时候打印组件2
4、解决
这时候当你来回切换的时候,通过v-if判断是否重新渲染当前组件
更改一下tabZujian.vue
<template>
<div class="tabZujian">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="tab1" name="first" :key="'first'">
<child1 v-if="isChildUpdate1"></child1>
</el-tab-pane>
<el-tab-pane label="tab2" name="second" :key="'second'">
<child2 v-if="isChildUpdate2"></child2>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script>
import tabZujianChild1 from '@/tabComponents/tabZujianChild1'
import tabZujianChild2 from '@/tabComponents/tabZujianChild2'
export default {
name: 'tabZujian',
components:{
child1:tabZujianChild1,
child2:tabZujianChild2
},
data() { return { //默认第一个选项卡
activeName: "first",
isChildUpdate1:true,
isChildUpdate2:false
}
},
methods:{
handleClick(tab) {
if(***.name == "first") {
this.isChildUpdate1 = true;
this.isChildUpdate2 = false;
} else if(***.name == "second") {
this.isChildUpdate1 = false;
this.isChildUpdate2 = true;
}
}
}
} </script>
这回当你没吃切换tab的时候在注意v8的console
成功了
前言
开发过程中遇到360问答了一个需求,根据用精象户选择的联系方式,动态改变输入框的检验条件,并且整个表单是可以增加的
沿规脱在线访问:动态表单剂损杀样报八各难关校验
github(欢迎star): https://***.com/Mrbl增混记湖欢致ackant. ..
思考几个问题
1.整个表单是可新增的,所复以要遍历生成;
2.联系方式(手机/座机)的切换,是要切换后边不同类型输入框还是只改变绿武落攻鱼得布静面校验规则(本篇是动态改变校验规三海迅杨开河则)
实现
1.elementui的form表单实现校验的时候要给当前el-form-item味煤在针娘加上prop属性,因为我们是遍历生成的表单,那我们的写法就要写成:
重点在prop属性
<template v-for="(k,index) in formData.lists"> <el-form-item :ref="index+'concatValue'" :prop="'lists.' + index +'.concatValue'" :rules="k.rules"> <el-input v-model="k.con识守杆武可catValue"></el-仍纸input> </el-form-item> </template>2.因为我选择了根据类型动态修改校验规则,而不是切换不同类型的输入框,
注意看下上文代码中的ref和rules,牛请宽宽当类型切换时,对应的:rules=k.rules对应的案质须及围纪反镇衡极规则也会进行修改,:ref属性是为了切换联系方式类型时,先清除掉之前的提示。
看下不同类型的校验规则,统一的先放到一个地方:
inputRules: {//设置好需要的校验规则 telephone: { pattern: /^1[3-9]\d{9}$/, message: '手机号格式错误', trigger: 'blur' }, phone: { pattern: /^\宜子知丰兵适d{10,12}$/, message: '座机号格式错误', trigger: 'blur' }, QQ: { pattern: /^[1-9][0-9]{4,14}$/, message: 甲随对比老别放威植市末'QQ格式错误', trigger: 'blur' }, mail: { pattern: /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z层果操边求呢0-9]+@([a-zA-Z0-9]+[_|\_东名亲|\.]?)*[a-zA-Z0-9]+\.[a同-zA-Z]{2,3}$/, message: '邮箱格式错误', trigger: 'blur' } },3.如果你的联系方式的值都是必填的,可以先写一个统一的必填校验,省的在步骤2代码里重复写
const baseRule = [ { required: true, message: '请填写联系方式', trigger: 'blur' } ]然后等切换校验类型的时候,把必填校验baseRule连接起来:
// 给表单加上新的校验 this.formData.lists[index].rules = [this.inputRules[data]].concat(baseRule)动态表单校验、动态校验规则这块没有太难的地方,就是有时候会被绕晕,所以拿出来记录一下,大家有更好的方案欢迎指出
总结
以上所述是小编给大家介绍的基于Vue+elementUI实现动态表单的校验功能(根据条件动态切换校验格式),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
您可能感兴趣的文章:Vue+ElementUI实现表单动态渲染、可视化配置的方法Vue ElementUI之Form表单验证遇到的问题Vue ElementUi同时校验多个表单(巧用new promise)vue elementui form表单验证的实现使用Vue实现图片上传的三种方式vue-quill-editor实现图片上传功能vue.js 图片上传并预览及图片更换功能的实现代码Vue2.0 实现移动端图片上传功能基于vue-upload-component封装一个图片上传组件的示例vue+node实现图片上传及预览的示例方法vue+elementUI实现表单和图片上传及验证功能示例周周有戏睇,湾区粤韵由你启!今周有咩好戏?话剧《人世间》《平凡的世界》,舞剧《俑Ill》《十面埋伏》,粤剧《黛玉》······——广州——鳟鱼歌剧团晚会剧《一样的青春》地点:广州大剧院实验剧场2022年夏天,音乐学院研究生于小青为了精心撰写文章而陷入了深深思考。于小青当了一辈子中学历史老师的爷爷看到...
2 隐私合规 招聘,隐私合规工程师高光时刻:【05:59】隐私合规2类主要客户【07:50】2021年,市场快速升温年【17:33】《北京市数字经济促进条例》的时代意义【18:59】何为数字脱敏?【28:33】年薪150w,隐私合规人才告急【30:17】企业开展隐私合规的现状首席风控合规官: 哈喽大家好,欢迎大家收听“合规FM”,一...
3 足坛三国杀,三国杀 足#三国杀移动版#三国手杀哪家强,且看小锋来拆墙。各位客官老爷们大家好啊,小锋又和您见面了。欧洲杯开赛在即,各国球队摩拳擦掌。而某款“阿坡坡”最近也总是给我推送比赛前瞻,撩拨的小锋这个准退役球迷险些重出江湖。虽然复出的事最后还是作罢了,给各位客官更文才是主要任务,但推送的视频却一个也没少看,弄得现在...
4 楚乔传赵丽颖和林更新精彩片段,楚乔传赵丽颖与林更新《总裁误宠替身甜妻》在第一季的结尾,可怜的女主角不仅没有跟男主角走到一起,居然还被绑!架!了!而且受到了匪徒的残忍折磨,被弄得遍体鳞伤……《三生三世十里桃花》由著名导演林玉芬执导,杨幂、赵又廷、张智尧、迪丽热巴、安悦溪、于朦胧等演员,安悦溪饰演的是小巴蛇少辛,曾被杨幂饰演的白浅搭救,甘愿为奴为婢,但...
5 把爱带回家卫视版,把爱带回家吕若男剧照近日据悉,由北京博方文化传媒有限公司出品,陈启峻、曹国莉担任导演,俞灏明、潘时七、沈梦辰、李泰、李智楠、付梦妮、于朦胧、田源、钱枫、徐婷等主演的都市爱情温暖大剧《把爱带回家》正式定档9.21日晚7:30湖南卫视金鹰独播剧场,新生代影视新星徐婷所饰演的吕若男将给观众带来新的视觉享受。吕若男性格抢先曝光...
6 汶川地震失去双腿的女孩近况,汶川大地震失去双腿的女孩本报记者谢佼一段旧视频,最近又成了网络热点:一名穿戴义肢的美丽女子,很有节奏地舞动腰肢,展现出别样的美丽。她就是廖智。廖智跳舞视频截图。没在聚光灯下的廖智,显得更从容一些。她的动作轻盈,犹如降临凡间的精灵。这只精灵正在取下自己的“腿”。准确地说,她是取下自己的义肢。在即兴起舞后,她要为被裹在义肢内的...
大家好,我是初心。今天,初心才刚把《鬼吹灯之牧野诡事》第一季看完还没过瘾呢,就没了以为要等很久才有第二季上微博搜了搜,发现第二季要在后天,也就是8月6日上线内心无比激动终于又有的看了在第一季中,最喜欢的有两个人,黎若花和雷厉黎若花一出场,初心就觉得这个女子挺好看,还有点眼熟于是便度娘了一下此女子正是...
2 《五个扑水的少年》在线观看,五个扑水的少年百度百科周云枫,原北京熹文娱乐签约艺人,曾发行个人单曲《八闻》,周云枫担任MV男主角、杨梓怡担任MV女主角,在QQ音乐和酷狗音乐上线,并一举拿下QQ音乐当周热歌榜前十。代表作品有《古蜀遗踪》饰演薛文,《我的吸血鬼男友》饰演司徒子澈,在热播中电影《五个扑水的少年》中饰演小虫一角。据了解,周云枫还曾以COSER...
3 义不容情的演员和结局,义不容情女演员兄弟间的恩怨情仇,始终能搅动世间百态。当年一部《义不容情》,曾获得收视桂冠。不但在香港,就连在东南亚的华人群体中,也成为观看人数最多的电视剧。33年过去了,当年的兄弟情谊,在现实中又掀起了怎样的涟漪呢?黄日华 饰 丁有健饰演丁有健之前,黄日华就曾是《天龙八部》里的大侠了。侠客的身边岂能没有痴情的人儿...
4 江卫国是什么电视,江卫国原型父母爱情(69)。小孩不懂大人们的悲伤。姜德福大儿子姜卫国没有管那些,牵着德国黑背到处炫耀一时的,他有些飘了,在听从王海洋的忽悠后,再来一遍。姜卫国见人就做着法西斯的招牌动作,甚至王政伟来到面前,他也会跑去示范一番。果然姜卫国又闯祸了,他仗着德国黑背的威慑力,火同弟弟姜卫东从被人家小孩手中抢的两捆柴...
5 最全演员影视作品排行榜,最全演员影视作品排名陈宝国电视剧:《江山纪》《典当行》《老酒馆》《老中医》《老农民》《最后一张签证》《北平无战事》《湄公河大案》《大河儿女》《原乡》《信者无敌》《义者无敌》《正者无敌》《智者无敌》《勇者无敌》《大宅门1912》《虎符传奇》《强者风范》《冰是睡着的水》《钢铁年代》《茶馆》《决战南京》《穷爸爸富爸爸》《天地...
6 欢迎光临舞蹈教程,广场舞欢迎您由正午阳光出品,黄轩、白百何领衔主演的都市情感剧《欢迎光临》正在热播,该剧将镜头对准了北漂青年,讲述他们平凡又苦涩的生活,充满了烟火气息。除了黄轩格外引人注意外,剧中的几位广场舞大妈真的非常吸睛,而且她们的来头还都不小。杨昆(饰演柳美莉)杨昆毕业于上海戏剧学院,在剧中饰演女主郑有恩的母亲,虽然戏份不...
关于新趣头条 | 联系方式 | 发展历程 | 新趣头条帮助 | 广告联系 | 网站地图
备案号:赣ICP备2022011427号-2 技术支持:娱乐资讯