技海泛舟(个人技术研究)

  • 首页
  • 日积月累
  • 学习计划
  • 随想
  • project
  • 关于
技海泛舟
一个技术宅的博客
  1. 首页
  2. 日积月累
  3. JavaScript
  4. 正文

vue3 响应式api学习

2021年11月9日 1701点热度
  1. ref(value)
    一般用于简单类型数据

使用ref()函数时,通常要注意两点:

(1)在修改值和获取值的时候,需要.value

(2)在模板中使用ref申明的响应式数据,可以省略.value

setup() {
    //  数据响应式:
    const count = ref(0)
    const obj = ref({ msg: 'hello' })
    const hClick = () => {
      count.value += 1
      console.log(obj.value.msg)
    }

    return { count, hClick }
  }
  1. reactive({})
setup(){
    let state = reactive({
        supNum:10,
        oppNum:5,
    });
    const hClick = computed(() => {
        state.supNum = 'nihao'
        state.vaule = 'hihi'
    })
    return {
        state,   // 方式一:{{state.supNum}} 保持响应性,但在视图中用state.xxx,操作比较麻烦
        ...state, // 方式二:解构后返回,可以直接用 {{supNum}} ,但就没有proxy代理,也就没有监听了。以为解构实际上是建立新的赋值。

        ...toRefs(state), // 把宿主状态中的每一项都变成单位的refImpl对象。相当于把reactive和ref结合起来一起用。
        ...toRef(state.supNum), // toRef()一般对基本类型响应式处理,ref() 包装对象也可以用来引用页面元素和组件
    }
}
<template>
  <div><p ref="demo">Hello</p></div>
</template>

<script>
import { ref } from '@vue/composition-api'

export default {
  setup() {
    const demo = ref(null)
    setTimeout(() => {
      console.log('demo: ', demo.value.innerHTML)
    }, 1000)
    return {
      text
    }
  }
}
// 打印结果:
// text: Hello
</script>
  1. watch
    监听某一个状态,ref创建的状态直接监听,reactive创建的某个状态要写成函数。
    watch第一次不会执行,要想执行,需要watch(function|string,handler(next,prev){},{immdiate:true})
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2021年11月9日
下一篇 >
归档
  • 2024 年 11 月
  • 2024 年 8 月
  • 2024 年 5 月
  • 2024 年 2 月
  • 2023 年 12 月
  • 2023 年 11 月
  • 2023 年 9 月
  • 2023 年 6 月
  • 2022 年 12 月
  • 2022 年 11 月
  • 2022 年 10 月
  • 2022 年 9 月
  • 2022 年 8 月
  • 2022 年 7 月
  • 2022 年 6 月
  • 2022 年 5 月
  • 2022 年 4 月
  • 2022 年 3 月
  • 2022 年 2 月
  • 2022 年 1 月
  • 2021 年 12 月
  • 2021 年 11 月
  • 2021 年 10 月
  • 2021 年 5 月
分类
  • Android
  • Arduino
  • cordova
  • css
  • go
  • html5
  • JavaScript
  • nodejs
  • oracle
  • project
  • system
  • uni-app
  • vscode
  • vue
  • 学习计划
  • 摘抄
  • 随想

COPYRIGHT © 技海泛舟(个人技术研究). 2021-2023. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备2026065271号-1

蜀公网安备XXXXX号