菜单
×
   ❮   
HTML CSS JAVASCRIPT SQL PYTHON JAVA PHP HOW TO W3.CSS C C++ C# BOOTSTRAP REACT MYSQL JQUERY EXCEL XML DJANGO NUMPY PANDAS NODEJS R TYPESCRIPT ANGULAR GIT POSTGRESQL MONGODB ASP AI GO KOTLIN SASS VUE DSA GEN AI SCIPY AWS CYBERSECURITY DATA SCIENCE
     ❯   

Vue 教程

Vue 首页 Vue Intro Vue Directives Vue v-bind Vue v-if Vue v-show Vue v-for Vue Events Vue v-on Vue Methods Vue Event Modifiers Vue Forms Vue v-model Vue CSS Binding Vue Computed Properties Vue Watchers Vue Templates

Scaling Up

Vue 为什么、如何以及设置 Vue 第一个 SFC 页面 Vue 组件 Vue Props Vue v-for 组件 Vue $emit() Vue Fallthrough 属性 Vue 作用域样式 Vue 本地组件 Vue 插槽 Vue v-slot Vue 作用域插槽 Vue 动态组件 Vue Teleport Vue HTTP 请求 Vue 模板引用 Vue 生命周期钩子 Vue Provide/Inject Vue 路由 Vue 表单输入 Vue 动画 Vue v-for 动画 Vue 构建 Vue Composition API

Vue Reference

Vue Built-in Attributes Vue Built-in Components Vue Built-in Elements Vue Component Instance Vue Directives Vue Instance Options Vue Lifecycle Hooks

Vue 示例

Vue Examples Vue Exercises Vue Quiz Vue Server Vue Certificate

Vue 计算属性

计算属性(Computed properties)类似于数据属性,但它们依赖于其他属性。

计算属性的写法像方法,但它们不接受任何输入参数。

当依赖项发生变化时,计算属性会自动更新,而方法则在发生某些事情时调用,例如事件处理。

当需要输出依赖于其他内容的内容时,可以使用计算属性

计算属性是动态的

计算属性的主要优点是它的动态性,这意味着它会根据例如一个或多个数据属性的值而变化。

计算属性是我们将要学习的 Vue 实例中的第三个配置选项。我们已经学习过的另外两个配置选项是 'data' 和 'methods'。

与 'data' 和 'methods' 一样,计算属性在 Vue 实例中也有一个保留名称:'computed'。

语法

const app = Vue.createApp({
  data() {
    ...
  },
  computed: {
    ...
  },
  methods: {
    ...
  }
})

'是'或'否'的计算属性

假设我们要创建一个表单来添加购物清单中的项目,并且我们想标记新项目是否重要。我们可以像之前示例那样,在复选框被选中时添加一个 'true' 或 'false' 的反馈。

示例

输入元素是动态的,以便文本反映状态。

<input type="checkbox" v-model="chbxVal"> {{ chbxVal }}
data() {
  return {
    chbxVal: false
  }
}
自己动手试一试 »

然而,如果你问某人某事是否重要,他们很可能会回答 'yes' 或 'no',而不是 'true' 或 'false'。所以为了让我们的表单更符合日常语言(更直观),我们应该在复选框上提供 'yes' 或 'no' 的反馈,而不是 'true' 或 'false'。

你猜怎么着?计算属性是帮助我们实现这一点的完美工具。

示例

通过一个名为 'isImportant' 的计算属性,我们现在可以在切换复选框时自定义对用户的文本反馈。

<input type="checkbox" v-model="chbxVal"> {{ isImportant }}
data() {
  return {
    chbxVal: false
  }
},
computed: {
  isImportant() {
    if(this.chbxVal){
      return 'yes'
    }
    else {
      return 'no'
  }
}
自己动手试一试 »

计算属性 vs. 方法

计算属性和方法都写成函数,但它们是不同的

  • 方法在从 HTML 调用时运行,而计算属性在依赖项更改时自动更新。
  • 计算属性的使用方式与数据属性相同,但它们是动态的。

Vue 练习

通过练习来测试自己

练习

请提供正确的代码,以便在屏幕上显示 'isImportant' 计算属性。

<div id="app">
  <form>
    <p>
      Important item?
      <label>
         <input type="checkbox" v-model="chbxVal"> 
         
      </label>
    </p>
  </form>
</div>

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
    data() {
      return {
        chbxVal: false
      }
    },
    : {
      isImportant() {
        if(this.chbxVal){
          return 'yes'
        }
        else {
          return 'no'
        }
      }
    }
  })
 app.mount('#app')
</script>

开始练习



×

联系销售

如果您想将 W3Schools 服务用于教育机构、团队或企业,请发送电子邮件给我们
sales@w3schools.com

报告错误

如果您想报告错误,或想提出建议,请发送电子邮件给我们
help@w3schools.com

W3Schools 经过优化,旨在方便学习和培训。示例可能经过简化,以提高阅读和学习体验。教程、参考资料和示例会不断审查,以避免错误,但我们无法保证所有内容的完全正确性。使用 W3Schools 即表示您已阅读并接受我们的使用条款Cookie 和隐私政策

版权所有 1999-2024 Refsnes Data。保留所有权利。W3Schools 由 W3.CSS 提供支持