vue3中markRaw示例详解 |
|
在 Vue 3 中, 下面是一个详细的示例,展示了如何在 Vue 3 中使用 import { reactive, markRaw, toRefs } from 'vue';
// 创建一个普通的 JavaScript 对象
const rawObject = {
name: 'Raw Object',
value: 'This is a raw object and it will not be reactive.'
};
// 使用 markRaw 标记这个对象,使其保持原样
const markedRawObject = markRaw(rawObject);
// 创建一个响应性对象
const state = reactive({
// 将标记过的 rawObject 放入响应性对象中
markedRawObject,
// 另一个普通的对象,它会被转换为响应性对象
reactiveObject: {
name: 'Reactive Object',
value: 'This is a reactive object and it will track changes.'
}
});
// 在组件中使用这些对象
export default {
setup() {
// 使用 toRefs 来解构响应性对象的属性,以便在模板中直接使用
const { markedRawObject, reactiveObject } = toRefs(state);
// 由于 markedRawObject 是被 markRaw 标记过的,修改它不会触发 Vue 的响应性系统
markedRawObject.value.name = 'Modified Raw Object'; // 这不会触发更新
// 修改 reactiveObject 则会触发 Vue 的响应性更新
reactiveObject.value.name = 'Modified Reactive Object'; // 这会触发更新
// 返回这些属性,以便在模板中使用
return {
markedRawObject,
reactiveObject
};
}
};在上面的代码中,我们创建了一个普通的 JavaScript 对象 在模板中,你可以像这样使用这些属性: <template>
<div>
<p>Marked Raw Object: {{ markedRawObject.name }} - {{ markedRawObject.value }}</p>
<p>Reactive Object: {{ reactiveObject.name }} - {{ reactiveObject.value }}</p>
</div>
</template>请注意,即使
到此这篇关于vue3中markRaw示例详解的文章就介绍到这了,更多相关vue3 markRaw内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持! |