vue3中reactive数据被重新赋值后无法双向绑定的解决

 更新时间:2022年05月25日 09:45:32   作者:aliven1  
这篇文章主要介绍了vue3中reactive数据被重新赋值后无法双向绑定的解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

reactive数据被重新赋值后无法双向绑定

这是因为reactive数据被重新赋值后,原来数据的代理函数和最新的代理函数不是同一个,无法被触发

在这里插入图片描述

推荐写法

import {reactive, toRefs} from 'vue'
setup(props, context) {
	const state = reactive({
	            myMessage:'',
	            myDialog: '',
	            myForm: ref(''),
	            searchValue: ref(''),
	            searchType: ref(''),
	            checked: ref(false),
	            actIndex: reactive({ arr: [0] }),
	            dialogTableVisible2: ref(false),
	            dialogTableVisible3: ref(false)
	})
	return {
	            ...toRefs(state),
	}
}

vue3数据的双向绑定

一、script setup

现在,没必要把数据写到data里面,或者是写一个setup函数,再进行return出去。

import进来的组件,可以直接在页面中使用,不再需要vue2的component或者是setup函数的return了。

<script setup>
import Header from '../home/Header.vue'
import Footer from '../home/Footer.vue'
</script>

组件中使用:

<template>
    <Header></Header>
    <Footer></Footer>
</template>

二、ref() 函数

ref()这个函数使得我们的变量拥有了双向绑定属性

使用步骤:

1、引入ref

2、给变量附初始值,ref(1)

3、 重点!!!变量的值要用 .value来获取 ,例如a,a.value

三、reactive()函数

这也是和ref一样使得我们的变量拥有了双向绑定属性, 这个函数接收一个对象作为参数

使用步骤:

1、引入ref

2、 重点!!!给变量附初始值,reactive({value:1}) 接收对象作为参数的时候,应该这样写

打印一个对象或者是数组,根据控制台输出, 可以看到 变量是一个Proxy挂钩, 挂在一个target 对象上

3、变量的值要用 .value来获取 ,例如a,a.value

来一个通俗易懂的示例:

//HTML结构
<div class="lx-content">
          <div
            class="lx-img"
            v-for="(item, i) in lxImges.value"
            :key="i"
          >
                <img :src="item.img" alt="" />
          </div>
</div>
<script setup>
import fetch from "../../fetch.js";
import { ref, reactive, onMounted } from "vue";
//如果说需要用ref定义一个变量,如下:
//let data = ref('')
let lxImges = reactive({ value: [],}//重点!!!!
fetch("abcd", {
  method: "get",
}).then((res) => {
  //console.log(res);
  lxImges.value = res.data;//重点!!!!
});
</script>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • vue3路由新玩法useRoute和useRouter详解

    vue3路由新玩法useRoute和useRouter详解

    这篇文章主要介绍了vue3路由新玩法useRoute和useRouter,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 关于Vue新搭档TypeScript快速入门实践

    关于Vue新搭档TypeScript快速入门实践

    这篇文章主要介绍了关于Vue新搭档TypeScript快速入门实践,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • VUE搭建手机商城心得和遇到的坑

    VUE搭建手机商城心得和遇到的坑

    这篇文章主要介绍了VUE搭建手机商城心得和遇到的坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • Vue切换div显示隐藏,多选,单选代码解析

    Vue切换div显示隐藏,多选,单选代码解析

    这篇文章主要介绍了Vue切换div显示隐藏,多选,单选代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Element Popover 弹出框的使用示例

    Element Popover 弹出框的使用示例

    这篇文章主要介绍了Element Popover 弹出框的使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • 详解Vue中AXIOS的封装

    详解Vue中AXIOS的封装

    这篇文章主要为大家介绍了Vue中AXIOS的封装,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • Vue.js自定义事件的表单输入组件方法

    Vue.js自定义事件的表单输入组件方法

    下面小编就为大家分享一篇Vue.js自定义事件的表单输入组件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-03-03
  • vue.config.js中configureWebpack与chainWebpack区别及说明

    vue.config.js中configureWebpack与chainWebpack区别及说明

    这篇文章主要介绍了vue.config.js中configureWebpack与chainWebpack区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue3封装侧导航文字骨架效果组件

    vue3封装侧导航文字骨架效果组件

    这篇文章主要为大家详细介绍了vue3封装侧导航文字骨架效果组件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Vuex状态机的快速了解与实例应用

    Vuex状态机的快速了解与实例应用

    Vuex是专门为Vuejs应用程序设计的状态管理工具,这篇文章主要给大家介绍了关于Vuex状态机快速了解与实例应用的相关资料,需要的朋友可以参考下
    2021-06-06

最新评论