美文网首页
Vue3中的计算属性

Vue3中的计算属性

作者: 技术小王 | 来源:发表于2021-11-05 18:14 被阅读0次

昨天实在是创作灵感来了,就中间更新了一篇自己亲身经历的小说,希望大家能喜欢。今天继续更新关于Vue3中CompetitionApi关于计算属性的使用方法。在之前的OptionsApi中,计算属性这样写。大家还可以关注我的微信公众号,蜗牛全栈。

const app = Vue.createApp({
  data(){
    return {
      ...
    }
  },
  computed:{
    computedData(){
      ...
    }
  },
  template:`<div>{{ computedData }}</div>`
})
          

const vm = app.mount('#root')

下面举几个例子,结合代码中的注释说明一下。我们先针对基本数据类型,在CompetitionApi中,是这样的:

const app = Vue.createApp({
  setup(){
    const { ref,computed } = Vue  // 从Vue中引入computed 
    const count = ref(0)
    const handleClick = () => {
      count.value += 1
    }
    const countAddFive = computed(() => {  // 传递函数
      return count.value + 5
    })
    return{
      count,
      handleClick,
      countAddFive
    }
  },
  template:`<div>
              <span @click="handleClick">{{ count }}</span>---
              <span>{{ countAddFive }}</span>
            </div>`
})

const vm = app.mount('#root')

我们除了可以传递函数 ,还可以更具体一点,传递对象,对象中包含了get和set,就像这样:

const app = Vue.createApp({
  setup(){
    const { ref,computed } = Vue
    const count = ref(0)
    const handleClick = () => {
      count.value += 1
    }
    let countAddFive = computed({
      get:() => {
        return count.value + 5
      },
      set:(v) => { // 接受传递来的参数
        count.value = v
      }
    })
    setTimeout(() => { // 返回的数据类型是基本数据类型,还是通过ref包裹的
      countAddFive.value = 100
    },3000)
    return{
      count,
      handleClick,
      countAddFive
    }
  },
  template:`<div>
              <span @click="handleClick">{{ count }}</span>---
              <span>{{ countAddFive }}</span>
            </div>`
})

const vm = app.mount('#root')

当然,除了基本数据类型,还有引用数据类型,下面以对象为例,代码可以写成这样:

const app = Vue.createApp({
  setup(){
    const { reactive,computed } = Vue
    const countObj = reactive({count:0})
    const handleClick = () => {
      countObj.count += 1
    }
    let countAddFive = computed({
      get:() => {
        return countObj.count + 5
      },
      set:(v) => { // 接受传递来的参数
        countObj.count = v
      }
    })
    setTimeout(() => { // 返回的数据类型是基本数据类型,还是通过ref包裹的
      countAddFive.value = 100
    },3000)
    return{
      countObj,
      handleClick,
      countAddFive
    }
  },
  template:`<div>
              <span @click="handleClick">{{ countObj.count }}</span>---
              <span>{{ countAddFive }}</span>
            </div>`
})

const vm = app.mount('#root')

之后更新关于watch的内容,大家一起加油!

相关文章

  • Vue3中的计算属性

    昨天实在是创作灵感来了,就中间更新了一篇自己亲身经历的小说,希望大家能喜欢。今天继续更新关于Vue3中Compet...

  • vue3特性之一 : 组合api

    setup() 函数是 vue3 中,专门为组件提供的新属性。它为我们使用 vue3 的 Composition ...

  • 03.vue3.0-composition API

    setup setup() 函数是 vue3 中,专门为组件提供的新属性。它为我们使用 vue3 的 Compos...

  • Vue3计算属性和监视属性

    计算属性 需要引入computed函数 这里我计算的firstName与laststName加在一起 监视属性 同...

  • [vue3新特性] 4.组合api——5.计算属性

    这节课我们来一起学习计算属性使用组合API的写法,首先我们也要把它导入 在vue3中,我们使用到的功能都是按需导入...

  • uni-app计算属性(computed)、方法(methods

    例如: 1、对于计算属性来说,当计算属性中的值(firstText、lastText)发生改变的时候,则计算属性中...

  • OC的@property与Swift的存储属性/计算属性类比

    Swift中的计算属性/存储属性与OC中的@property   Swift中引入了存储属性、计算属性的概念,存储...

  • computed深入

    计算属性set/get 计算属性 (单向)在computed属性对象中定义计算属性的方法,在页面使用{{方法名}}...

  • vue 计算属性computed

    computed计算属性 对于任何复杂逻辑,你都应当使用计算属性 计算属性中的setter 计算属性默认只有 ge...

  • Vue3.0 响应式系统原理

    Vue3 响应式 Proxy 对象实现属性监听 多层属性嵌套,在访问属性过程中处理下一级属性 默认监听动态添加的属...

网友评论

      本文标题:Vue3中的计算属性

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