历史文章目录连接:

https://blog.csdn.net/yy763496668/article/details/113117040

此链接为CSDN连接,目的为方便大家一览博客目录!内容会定期更新。

微信公众号:猿媛大本营

概述:

在接受到一些网络数的时候,数据中可能包含了大量你用不到的属性,你用到的属性只有一部分时,我们可以通过结构响应式数据来获得。

正文:

此案例模拟了一个复杂的对象

<template>
  <p>采访受害者对象:</p>
  <p>受害者姓名:{{wyf.girlFriend.name}}</p>
  <p>受害者年龄:{{wyf.girlFriend.age}}</p>
  <p>受害者性别:{{wyf.girlFriend.gender}}</p>
  <p>来自受害者的警告:{{wyf.girlFriend.warning}}</p>
</template>


<script lang="ts">
import { ref, defineComponent, reactive } from 'vue'
export default defineComponent({
  name: 'HelloWorld',
  setup: () => {
    const wyf = reactive({
      name:'陨落巨星',
      age:'31',
      gender:'男',
      girlFriend:{
        name:'受害者',
        age:16,
        gender:'女',
        warning:'接受法律的制裁吧!'
      }
    })
    return {wyf}
  },
})
</script>

页面显示:

从上面的页面代码来看,我们只用到wyf.girlFriend中属性,每次访问的层次都比较深,为了简化访问深度。我们需要架构响应式数据。

<template>
  <p>采访受害者对象:</p>
  <p>受害者姓名:{{name}}</p>
  <p>受害者年龄:{{age}}</p>
  <p>受害者性别:{{gender}}</p>
  <p>来自受害者的警告:{{warning}}</p>
</template>


<script lang="ts">
import { defineComponent, reactive, toRefs } from 'vue'
export default defineComponent({
  name: 'HelloWorld',
  setup: () => {
    const wyf = reactive({
      name:'陨落巨星',
      age:'31',
      gender:'男',
      girlFriend:{
        name:'受害者',
        age:16,
        gender:'女',
        warning:'接受法律的制裁吧!'
      }
    })
    //结构响应式数据
    let {name,age,gender,warning} = toRefs(wyf.girlFriend);


    return {name,age,gender,warning}
  },
})
</script>




toRefs将一响应式对象转化成一组ref,这些ref将保留到源对象的响应式连接。

toRef 为某个属性创建ref,参数有两个,一个是待结构的对象,一个是待结构的属性字符串。

<template>
  <p>采访受害者对象:</p>
  <p>受害者姓名:{{name}}</p>
  <p>受害者年龄:{{age}}</p>
  <p>受害者性别:{{gender}}</p>
  <p>来自受害者的警告:{{warning}}</p>
</template>


<script lang="ts">
import { defineComponent, reactive, toRef } from 'vue'
export default defineComponent({
  name: 'HelloWorld',
  setup: () => {
    const wyf = reactive({
      name:'陨落巨星',
      age:'31',
      gender:'男',
      girlFriend:{
        name:'受害者',
        age:16,
        gender:'女',
        warning:'接受法律的制裁吧!'
      }
    })
    //通过toRefs 结构响应式数据
    //const {name,age,gender,warning} = toRefs(wyf.girlFriend);


    //toRef 为某个属性创建ref
    const name = toRef(wyf.girlFriend,'name');
    const age = toRef(wyf.girlFriend,'age');
    const gender= toRef(wyf.girlFriend,'gender');
    const warning = toRef(wyf.girlFriend,'warning');
    
    return {name,age,gender,warning}
  },
})
</script>




【文章导航】

https://blog.csdn.net/yy763496668/article/details/113117040

THANKS ALL !!

【关注、点赞,收藏】

关注公众号,您将第一时间收到文章更新

微信公众号:猿媛大本营

QQ群号:1056320746

GitHub 加速计划 / vu / vue
207.53 K
33.66 K
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:1 个月前 )
73486cb5 * chore: fix link broken Signed-off-by: snoppy <michaleli@foxmail.com> * Update packages/template-compiler/README.md [skip ci] --------- Signed-off-by: snoppy <michaleli@foxmail.com> Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 3 个月前
e428d891 Updated Browser Compatibility reference. The previous currently returns HTTP 404. 4 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐