【问题标题】:v-on:click is not working for a button on simple Vue appv-on:click 不适用于简单 Vue 应用程序上的按钮
【发布时间】:2020-12-18 00:13:14
【问题描述】:

这是一个基本的 vue.js 项目,我在页面上添加了一个按钮。单击按钮时,showProduct 属性设置为 truefalse。 html部分如下

    <div id="app">
        <button v-on:click="showCheckout">Click Me</button>
    </div>

Vue对象如下

    <script>
        const store = new Vue({
        el: '#app',
        data: {
            showProduct:true,
        },
    
        methods: {
            showCheckout: function() {
                this.showProduct = this.showProduct ? false: true;
            }
        }
        });
    </script>

问题:单击按钮时属性未更新。我尝试使用return this.showProduct = this.showProduct ? false: true;,但问题仍未解决。

如果我打开 Vue 开发工具并在“组件”选项卡中单击 Root 组件,则值会更改一次。如果再次单击该按钮几次,则该值不会改变。只有当我第一次单击页面上的按钮,然后单击开发工具中的 Root 组件时,它才会发生变化。如果根 Root 组件被点击两次,该值不会改变。

【问题讨论】:

  • 它在我身边完美运行。
  • @Derlin 我尝试清除浏览器缓存。重新启动浏览器,但问题仍然存在。当我在 chrome 控制台中查看 showedProduct 时,该属性正在更改,但我的应用程序的 Root 组件没有更新该属性。当从 Vue 开发工具中单击 Root 组件时,值会更改一次

标签: javascript vue.js


【解决方案1】:

它工作正常。您也可以在此处运行此代码 sn-p 来验证

const store = new Vue({
        el: '#app',
        data: {
            showProduct:true,
        },
    
        methods: {
            showCheckout: function() {
                this.showProduct = this.showProduct ? false: true;
            }
        }
        });
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>

<div id="app">
  <button v-on:click="showCheckout">Click Me</button>
  {{showProduct}}
</div>

【讨论】:

  • “Root”的数据对象内部的 showProduct 属性没有改变。根据这本书,该属性在“根”组件的数据对象中切换真假值
  • 请打开 Vue 开发工具并检查 Root 组件的 showProduct 属性。它没有更新。更新在 chrome 控制台上可见,但在 Vue 开发工具中不可见。
【解决方案2】:

您实际上不需要单一分配的方法。见下sn-p

new Vue({
  el: "#app",
  data() {
    return {
      showProduct: false
    }
  }
})
   

<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
 <div id="app">
    <h1 v-if="showProduct" > My product </h1>
    <button v-on:click="showProduct = !showProduct">Click Me</button>
</div>

【讨论】:

  • 我对 Vuejs 的工作方式不是很熟悉。该书建议您可以使用一种方法进行单一分配。您可以在 Vue.js in Action 第 75 页一书中找到这一点。我正在寻找一种不使用数据函数来切换属性的方法
猜你喜欢
  • 2020-04-07
  • 2016-06-14
  • 2017-05-19
  • 1970-01-01
  • 2016-07-09
  • 2012-05-21
  • 1970-01-01
  • 2018-08-31
  • 1970-01-01
相关资源
最近更新 更多