Vue 定义只读数据 readonly

简介: Vue 定义只读数据 readonly

readonly 让一个响应式数据变为 **深层次的只读数据**。

isReadonly 判断一个数据是不是只读数据。

应用场景:不希望数据被修改时使用。

 

readonly 深层次只读:

<template>
  <h1>reactive数据</h1>
  <p>姓名:{{ info.name }}</p>
  <p>年龄:{{ info.age }}</p>
  <button @click="editInfo">修改reactive数据</button>
  <hr />
  <h1>readonly数据</h1>
  <p>姓名:{{ readInfo.name }}</p>
  <p>年龄:{{ readInfo.age }}</p>
  <button @click="editReadInfo">修改readonly数据</button>
</template>
 
<script>
// 引入 readonly 与 reactive 函数
import { readonly, reactive } from 'vue'
export default {
  name: "Home",
  setup() {
    // 使用 reactive 创建数据
    const info = reactive({
      name: "张三",
      age: 20
    });
    // 使用 readonly 创建只读数据
    const readInfo = readonly(info);
    // 修改 reactive 数据
    const editInfo = () => {
      info.name = "李四";
      info.age = 22;
      console.log(info);
      console.log(readInfo);
    }
    // 修改 readonly 数据(警告,不会被修改)
    const editReadInfo = () => {
      readInfo.name = "李四";
      readInfo.age = 22;
      console.log(info);
      console.log(readInfo);
    }
    // 返回数据
    return {
      info,
      readInfo,
      editInfo,
      editReadInfo
    }
  }
}
</script>

:修改原数据时,只读的数据也会发生改变。

:修改只读的数据时,会触发警告提示数据不允许被修改。

 

:readonly 返回的数据是不允许被修改的,但是可以修改原来的数据。并且原来的数据发生改变时,readonly 返回的数据也会发生改变。


相关文章
|
1天前
|
JavaScript
|
1天前
|
JavaScript 前端开发
Vue,如何引入样式文件
Vue,如何引入样式文件
|
1天前
|
JavaScript
|
1天前
|
JavaScript
Vue搭配ELEMENT之后,右侧点击栏点击跳转到空白页解决方法
Vue搭配ELEMENT之后,右侧点击栏点击跳转到空白页解决方法
|
1天前
|
JavaScript
vue : 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保 路径正确,然后再试一次。
vue : 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保 路径正确,然后再试一次。
|
1天前
|
JavaScript 前端开发 API
|
1天前
|
JavaScript 前端开发 网络架构
Vue如何实现页面跳转路由,实现单页面跳转
Vue如何实现页面跳转路由,实现单页面跳转
|
2天前
|
JavaScript 前端开发
Vue组件生命周期深度剖析:从创建到销毁的八大钩子实战指南
Vue组件生命周期深度剖析:从创建到销毁的八大钩子实战指南
|
1天前
|
JavaScript
|
1天前
|
JavaScript 前端开发