美文网首页
toRaw和markRaw

toRaw和markRaw

作者: 唐吉柯德 | 来源:发表于2021-04-17 17:42 被阅读0次

toRaw

  • 响应式数据拆解,当通过ref或者reactive生成响应式数据的时候,修改数据不想引起UI的变化
    举个栗子如下
<template>
  <div class="page-wrapper">
    <p>-------------------------------toRaw-----------------------</p>
    <p>stu: {{stu}}</p>
    <button @click="changeStu">点我一下,changeStu</button>
    <p>rawStu: {{rawStu}}</p>
    <button @click="changeRawStu">>点我一下,changeRawStu</button>
  </div>
</template>
<script lang="js">
import { defineComponent, reactive, toRaw } from 'vue';
export default defineComponent({
  name: 'toRow-test',
  setup(){
    let stu= reactive({
        name: 'zs',
        age: 18
    })
    let rawStu= toRaw(stu);
    function changeStu() {
        stu.name= 'ls';

    }
    function changeRawStu() {
        rawStu.name= 'ww';
        console.log('changeStu', stu);
        console.log('changeRawStu', rawStu);
    }
    return {
        stu,
        rawStu,
        changeStu,
        changeRawStu
    }
  }
  
})
</script>

markRaw

  • 原始数据通过markRaw封装之后,再用ref或者reactive封装的时候返回的还是原始数据
    还是举个栗子
<template>
  <div class="page-wrapper">
    <p>-------------------------------markRow-----------------------</p>
    <p>stu: {{stu}}</p>
    <button @click="changeStu">点我一下,changeStu</button>
  </div>
</template>
<script lang="js">
import { defineComponent, reactive, markRaw } from 'vue';
export default defineComponent({
  name: 'toRow-test',
  setup(){
    let obj= {
        name: 'zs',
        age: 18
    }
    obj= markRaw(obj);
    console.log('markRaw obj', obj);
    let stu= reactive(obj);
    console.log('reactive stu', stu);
    function changeStu() {
        stu.name= 'ls';
        console.log('changeStu', stu);

    }
    return {
        stu,
        changeStu
    }
  }
  
})
</script>

相关文章

  • 开发知识点

    toRaw 与 markRaw 目的是不想使用响应式对象 toRaw,将一个响应式对象转为普通对象,对这个普通对象...

  • toRaw的详解

    toRaw获取原始数据不刷新页面的情况下,修改原始数据 markRaw(value)使数据不会发生改变

  • Vue3.0 toRaw函数和markRaw函数

    Vue3.0给我们提供的这两个方法,toRaw方法是把被reactive或readonly后的Proxy对象转换为...

  • vue3 toRaw函数和markRaw函数

    在setup函数中,我们通过ref和reactive函数创建响应式数据,其特点是,每次修改数据都会更新UI界面,这...

  • vue得toRef,toRaw,toRefs

    toRef 如果原始对象是非响应式的就不会更新视图 数据是会变的 toRefs 批量创建ref对象主要是方便我们解...

  • Dart UI 库-- CallbackHandle 对象

    原始回调句柄的包装器。 构造函数 使用原始回调句柄创建实例。 只生产值调用CallbackHandle.toRaw...

  • Vue3_08(认识to系列全家桶)

    toRef toRefs toRaw toRef 如果原始对象是非响应式的就不会更新视图 数据是会变的 如果原始对...

  • -和 和 -

    产品介绍:和和是一款会员制共享平台;所有 经营者可在APP内注册和和商家成为会员供 应商(实体店、网店、微商、平台...

  • &和&&,|和||

    原文:https://blog.csdn.net/chinabestchina/article/details/7...

  • 和可和,非常和

    我年纪很小的时候,父亲有一本笔记本,上面只写了一句话:万物并育而不相害,道并行而不相悖。我当时很喜欢这句话,所以期...

网友评论

      本文标题:toRaw和markRaw

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