怎么把element的tootip设置为点击后出现提示框
我目前有一个需求,就是要点击文字才会出现提示框,而不是hover上去就以后,找资料看文档,看了半天让我终于实现了,其实也不难,可能是最开始我没有理解value(状态是否可见)的意思吧
value(状态是否可见):我们知道了这个就很简单啦,true就是提示框可见,false就是提示框不可以见,那么我们点击控制value并且打开手动模式就好啦,manual
value动态取值,控制显隐
要想在提示框里面放其他的东西就用slot插槽来做,<div slot="content">可以写任何东西</div>
<el-tooltip placement="bottom-end" manual :value='flag' >
<div slot="content">
<div>
<el-input></el-input>
<el-button >评论</el-button>
</div>
</div>
<span @click="replyContent">
{{ flag ? "取消" : "回复" }}
</span>
</el-tooltip>
replyContent() {
this.flag = !this.flag;
},
点击回复就会出现提示框,在点取消就没有了
最开始我是直接用的disabled属性来做的,但是我发现点击后需要重新把鼠标移上去才行,就又重新找方法了
vue2动态给对象添加属性并实现响应式应答
最近有一个需求,用的v-for循环数组渲染出来,但是呢,渲染中有用v-show,因为是循环所以一点击就全部隐藏的都显示了
这样肯定不行舍,所以我就准备利用,动态添加属性,来做显隐功能,随便点击一个,那么就给这一个添加一个新属性,这样就这有这一个有新属性,其他的没有,就会只显示这一个了,但是问题来了,我发现我添加了后就不能响应式刷新
这是什么原因呢?然后我想起,vue2直接添加属性是不会响应式刷新的,也不能数组下标也是没有被劫持的,然后我就去百度找,找到了解决办法
根据官方文档定义:如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。
Vue 不允许在已经创建的实例上动态添加新的根级响应式属性 (root-level reactive property)。
然而它可以使用 Vue.set(object, key, value) 方法将响应属性添加到嵌套的对象上。
<template>
<input type="button" @click="demoSet" value="name">
</template>
<script>
export default {
data() {
return {
form:{
id:1
}
}
},
methods:{
demoSet(){
// 这样设置是不行的
this.form.amount=2;
// 这样才可以实现响应式
this.$set(this.form,"amount",2);
}
}
}
</script>
样式穿透
当我们用第三方UI库的时候,有时候想要改一改样式,但是又由于别人已经把样式封装好了,改不了,这时就需要用到样式穿透来改样式
比如我们现在想改一改element的时间选择器中间 至 的宽度,就可以这样改
<el-form-item label="时间" class="elselect">
<el-date-picker
v-model="searchModel.time"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</el-form-item>
elselect 是我们自己定义的class,el-range-separator 这是官方的class
现在我们用自己的样式去穿透官方就可以修改了
.elselect /deep/ .el-range-separator {
width: 24px;
}