vue3中想要指定一个对象不会被包装成proxy对象,可使用markRaw方法包装,该方法本质是为源对象增加__v_skip属性,意思是告诉vue,若要代理该对象,请跳过处理
<template>
<div>
<div>{{state.name}}</div>
<button @click="myFn">改变不会变吗 </button>
</div>
</template>
<script>
import { markRaw, reactive } from 'vue'
export default {
setup(){
let obj={name:'tom',__v_skip:true}
// obj=markRaw(obj)
console.log(obj)
let state=reactive(obj);
function myFn(){
state.name="jarry";
console.log(state.name)
}
return {state,myFn}
}
}
</script>
<style scoped>
</style>