【问题标题】:Call function if switch gets toggled in VueJS/VuetifyJS如果开关在 Vue JS/VuetifyJS 中切换,则调用函数
【发布时间】:2018-09-11 13:03:32
【问题描述】:

我在 VueJS 中使用 VuetifyJS,如果切换开关,我需要调用一个函数。该怎么做?

模板:

 <v-container fluid>
    <v-switch :label="`Switch 1: ${switch1.toString()}`" v-model="switch1"></v-switch>
  </v-container>
</template>

脚本:

<script>
  export default {
    data () {
      return {
        switch1: false
      }
    }
  }
</script>

【问题讨论】:

    标签: javascript vue.js toggle vuetify.js


    【解决方案1】:

    找到另一个更好的解决方案来使用@change prop,每次切换开关时都会调用该方法。

        <v-switch
            :input-value="true"
            @change="changeState(item.id)"
        ></v-switch>
        <v-switch
            :input-value="true"
            @change="changeState(item.id)"
        ></v-switch>
    

    这是脚本,

    methods:{
        changeState(id) {
            console.log("Switch "+id);
            // Do stuff
        }
    }
    

    【讨论】:

      【解决方案2】:

      您可以在switch1 数据属性上设置watcher,如下所示:

      <script>
        export default {
          data () {
            return {
              switch1: false
            }
          },
          watch: {
            switch1(newValue){
              //called whenever switch1 changes
              console.log(newValue);
            }
          }
        }
      </script>
      

      由于 v-switchv-model 绑定到 switch1 ,因此无论何时打开/关闭开关,switch1 的监视处理程序都会使用更改后的 newValue 调用

      这是codepen

      【讨论】:

      • 如果有n个开关怎么克服。
      • @MehulPrajapati 只需将带有观察器的开关提取到它自己的组件中,然后重用组件n
      • 找到了另一个更好的解决方案,它使用了@change prop。
      • @change 不是更好的解决方案,违背了 Vue 的目的
      猜你喜欢
      • 2022-11-18
      • 2016-10-31
      • 2019-04-19
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2016-01-11
      相关资源
      最近更新 更多