zoukankan      html  css  js  c++  java
  • [Vue] Use Vue.js Component Computed Properties

    You can add computed properties to a component to calculate a property on the fly. The benefit of this over invoking a method is that computed properties are cached based on their dependencies.

    <template>
    
        <section class="container">
            <item-description></item-description>
            <h1 class="title">
                {{message | capitalize}}
            </h1>
            <button @click="changeMessage" class="button">Change Message</button>
            <hr>
            <section>
                <h2>Mouse event</h2>
                <div>{{counter}}</div>
                <div @mouseover="inc">Mouse over here to change counter</div>
            </section>
            <section>
                <h2>Keyboard events</h2>
                <form @submit.prevent="submit">
                    <input type="text"
                           v-model="firstName"
                           @keyup.enter="submit"
                           @keyup.alt.ctrl.shift.down="keyeventHandler"/>
                    <button v-bind:disabled="buttonDisabled">{{buttonText}}</button>
                </form>
                <div>
                    {{key}}
                </div>
            </section>
        </section>
    </template>
    
    <style scoped>
    .title
    {
      margin: 50px 0;
    }
    
    </style>
    
    <script>
    
      import ItemDescription from '../components/item-description';
    
      export default {
        data() {
          return {
            message: 'this is my vue!',
            counter: 0,
            key: "",
            firstName: "",
            buttonText: "Add"
          }
        },
    
          computed: {
            buttonDisabled: function() {
              return this.firstName == "";
            }
          },
    
        components: {
            ItemDescription
        },
    
        filters: {
            capitalize(value) {
                return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
            }
        },
    
        methods: {
          changeMessage() {
            this.message = "Updated message here!"
          },
    
          inc() {
            this.counter += 1;
          },
    
          keyeventHandler() {
            this.key = "Ctrl + alt + shift + down is clicked"
          },
    
          submit() {
            console.log("form is submitted, the value is", this.firstName);
          }
        }
      }
    
    </script>
  • 相关阅读:
    vue 如何点击按钮返回上一页
    vue遍历数组和对象的方法以及他们之间的区别
    css隐藏滚动条
    DOM编程以及domReady加载的几种方式
    修改默认滚动条默认样式
    面试题集锦
    正则表达式
    闭包及应用以及顺序处理ajax请求
    实现自己的(模仿jquery)toggle函数
    Asp.Net与SEO Viewstate优化终极解决方案
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6323740.html
Copyright © 2011-2022 走看看