美文网首页Vue.js专区Vue学习笔记Vue.js开发技巧
element-ui中动态修改组件属性的值

element-ui中动态修改组件属性的值

作者: fred_33c7 | 来源:发表于2018-07-12 21:52 被阅读8次
图1

在图1中,有一个button-group,如果我们想让他保持一定的状态,即点击'3日'后,下方出现相应的图标,这个'3日'的button一直保持亮度。该如何做呢?

图2

在图2中,我们发现,element-ui给定的button type其实有很多的,只要在我们点击处罚button的事件的同时,修改button的type就行了。

方案1

在vue中,有一个很方便的dom方法,就是ref

<el-button ref="button11" size="mini" @click="choose_card1">3日</el-button>
<el-button ref="button12" size="mini" @click="choose_card2">7日</el-button>
<el-button ref="button13" size="mini" @click="choose_card3">30日</el-button>

我们给每个button一个特定的ref值。需要修改的时候,我们在这个button的时间里,给每个button的type一个特定值就行了。

choose_card1() {
     this.$refs.button11.type = 'primary'
     this.$refs.button12.type = ''
     this.$refs.button13.type = ''
}

如果,这样,我们就能观察到确实修改了button的type属性并且有效果,但是打开浏览器的console(F12)我们就会发现,出现了很多报错:

Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop’s value. Prop being mutated: “type”

报错的内容根据字面含义可以知道,如果我们修改这个type的话,父组件也会发生变动。这个方法并不成立。同时,报错的内容里面,给我们提供了修改的方法,就是用data或者computed来保存一个临时的属性。

方案2

HTML:

<el-button :type="button11" size="mini" @click="choose_card1">3日</el-button>
<el-button :type="button12" size="mini" @click="choose_card2">7日</el-button>
<el-button :type="button13" size="mini" @click="choose_card3">30日</el-button>

JS:

data () {
      return {
        button11: '',
        button12: '',
        button13: ''
     }
}
methods : {
  choose_card1() {
     this.button11 = 'primary'
     this.button12 = ''
     this.button13 = ''
  }
}

这样,就没有错误了。

相关文章

  • element-ui中动态修改组件属性的值

    在图1中,有一个button-group,如果我们想让他保持一定的状态,即点击'3日'后,下方出现相应的图标,这个...

  • 访问节点和组件

    你可以在属性检查器里修改节点和组件,也能在脚本中动态修改。动态修改的好处是能够在一段时间内连续地修改属性、过渡属性...

  • vue子组件给父组件传属性

    1.普通属性传递方式 子组件通过this.$emit('update:属性名',属性值)修改父组件的值 1.组件内...

  • Unity小技巧——右键组件名复制属性值

    运行中修改的了组件Inspector中的值,当停止播放的的时候,修改的数值会丢失。通过下面的方式可以将组件的属性值...

  • (三)访问节点和组件

    (三)访问节点和组件 你可以在 属性检查器 里修改节点和组件,也能在脚本中动态修改。动态修改的好处是能够在一段时间...

  • 父子组件间通信

    父→子 传送子组件的属性是父组件传递的,动态修改父组件的值,子组件也会对应的变化 子→父父组件将自身方法作为pr...

  • Vue 中的 sync 修饰符

    子组件修改父组件中的某个属性值,正常写法 使用sync修饰符的写法 操作步骤:子组件中: this.$emit("...

  • vue动态组件

    动态组件通过component组件实现,这个组件有一个is属性,is属性的值是谁,它就会展示哪个组件

  • Vue 子组件修改父组件的值

    语法 vm.$emit('update:父组件属性', 值) 在子组件中指定 在父组件中引用子组件时,在要修改的属...

  • 77.vue的属性透传 && 两个component接收同样的p

    1. 如何实现组件的属性透传 场景: 封装 Element-ui组件,从封装组件外部向 Element-ui 组件...

网友评论

    本文标题:element-ui中动态修改组件属性的值

    本文链接:https://www.haomeiwen.com/subject/fxcdpftx.html