vue3跟新视图遇见神奇现象

简介: vue3跟新视图遇见神奇现象

场景描述


今天遇见一个问题, tableAllFun 函数中写了一个 index=1;


然后在 otherAllFun 函数中去改变这个index=2的值


奇怪的事情发生了


在视图index展示的值是2;


但是在打印的时候index=1


我就是觉得很奇怪


代码


<template>
    <div>
        <li v-for="(item,index) in tableData.data" :key="index">
            {{ item.name }}--> {{ item.age }}
        </li>
        {{ tableData.index }}
        <button @click="add">add</button>
    </div> 
</template>
<script>
import { reactive,defineComponent } from 'vue';
export default defineComponent({
    setup () {
        let {query,tableData}=tableAllFun();
        query();
        let { add }=otherAllFun(tableData);
        return {tableData,add}
    }
})
function tableAllFun(){
    let tableData=reactive({
        data:[],
        index:1
    })
    function query(){
        console.log( '本来应该显示值为2,但是却是==>',tableData.index  )
    }
    return {query,tableData}
}
function  otherAllFun(tableData){
    function add(){
        tableData.index=2;
        console.log( '我将值该为了2',tableData.index  )
        tableAllFun().query();
    }
    return {add}
}
</script>


1425695-20210811215040841-712181934.gif

相关文章
|
3天前
|
JavaScript
Vue3基础(24)___vue3中使用vuex
本文介绍了在Vue 3中如何使用Vuex进行状态管理,包括安装Vuex、创建store、定义state、mutations、actions、getters,以及在组件中使用这些选项。同时,还介绍了如何通过`$store`在组件内部访问和修改状态,以及如何使用命名空间对模块进行隔离。
20 3
|
3天前
|
JavaScript API
Vue3基础(24)___vue3中不再支持filters
Vue 3中不再支持filters(过滤器)
17 2
|
2天前
|
存储 JavaScript 开发者
Vue 3 组件通信方式总结
Vue 3 组件通信方式总结
|
2天前
|
存储 JavaScript API
Vue3基础(25)___初尝pinia,相比于vuex轻量、好用
本文介绍了Pinia在Vue 3中的使用,相比于Vuex,Pinia更轻量且易于使用。文章详细解释了Pinia的基本概念、优势,并提供了安装和使用Pinia的步骤,包括定义状态、getters、actions和如何在组件中使用Pinia进行状态管理。
17 3
Vue3基础(25)___初尝pinia,相比于vuex轻量、好用
|
2天前
|
JavaScript
在 Vue 3 组件通信方式中,Provide / Inject 与 Vuex 的区别是什么?
在 Vue 3 组件通信方式中,Provide / Inject 与 Vuex 的区别是什么?
|
2天前
|
存储 JavaScript
Vue 3 组件通信方式
Vue 3 组件通信方式
|
2天前
|
JavaScript 前端开发 API
Vue2与Vue3插槽使用的区别及案例
Vue 3在插槽功能上的改进,体现了其对开发体验的持续优化。通过简化API、加强动态特性和提升性能,Vue 3使得插槽的使用更加灵活和高效。这些改进不仅有助于减轻开发者的负担,还为组件之间的高级交互和内容复用打开了新的可能性。随着Vue生态系统的不断成熟,我们有理由相信,Vue将继续为前端开发提供强大且易用的工具。
11 3
|
1天前
|
JavaScript 前端开发 API
vue3的传送门teleport究竟有多神奇?suspense发起异步请求有多简约?
该文章介绍了Vue3中新特性Teleport和Suspense的使用方法,演示了如何使用Teleport进行DOM节点的非父子关系传送,以及Suspense在处理异步组件加载时的优雅展示和错误处理技巧。
|
1天前
|
JavaScript
particles 粒子背景插件在vue3中的使用
本文介绍了如何在Vue 3项目中使用`particles.vue3`库来创建粒子背景特效。文章提供了粒子背景插件的概述、安装步骤、配置参数说明,并展示了粒子特效的实现效果。同时,提供了在main.js中进行全局配置、在Vue组件中使用粒子背景组件的示例代码,以及完整代码的下载链接。
|
2天前
|
JavaScript 前端开发 编译器
Vue3基础(26)___defineProps、defineEmits、defineExpose、defineModel组件通信、defineOptions
本文介绍了Vue 3中`<script setup>`语法糖的使用,以及如何在Vue 3的组合式API中使用`defineProps`、`defineEmits`、`defineExpose`和`defineModel`进行组件通信和属性暴露。同时,还解释了`defineOptions`的作用,它可以用来配置组件的选项,例如禁用属性的自动继承。
15 2