网站首页 > 精选文章 正文
Observable 是什么
Observable 翻译过来我们可以理解成可观察的
我们先来看一下其在Vue中的定义
Vue.observable,让一个对象变成响应式数据。Vue 内部会用它来处理 data 函数返回的对象
返回的对象可以直接用于渲染函数和计算属性内,并且会在发生变更时触发相应的更新。也可以作为最小化的跨组件状态存储器
Vue.observable({ count : 1})
其作用等同于
new vue({ count : 1})
在 Vue 2.x 中,被传入的对象会直接被 Vue.observable 变更,它和被返回的对象是同一个对象
在 Vue 3.x 中,则会返回一个可响应的代理,而对源对象直接进行变更仍然是不可响应的
使用场景
在非父子组件通信时,可以使用通常的bus或者使用vuex,但是实现的功能不是太复杂,而使用上面两个又有点繁琐。这时,observable就是一个很好的选择
创建一个js文件
// 引入vue
import Vue from 'vue
// 创建state对象,使用observable让state对象可响应
export let state = Vue.observable({
name: '张三',
'age': 38
})
// 创建对应的方法
export let mutations = {
changeName(name) {
state.name = name
},
setAge(age) {
state.age = age
}
}
在.vue文件中直接使用即可
<template>
<div>
姓名:{{ name }}
年龄:{{ age }}
<button @click="changeName('李四')">改变姓名</button>
<button @click="setAge(18)">改变年龄</button>
</div>
</template>
import { state, mutations } from '@/store
export default {
// 在计算属性中拿到值
computed: {
name() {
return state.name
},
age() {
return state.age
}
},
// 调用mutations里面的方法,更新数据
methods: {
changeName: mutations.changeName,
setAge: mutations.setAge
}
}
猜你喜欢
- 2025-07-19 为什么react需要fiber架构,而vue却不需要?
- 2025-07-19 Vue 中的 Props 与 Data 细微差别,你知道吗?
- 2025-07-19 如何使用 Chrome DevTools(及 Vue Devtools)调试 Vue.js 应用
- 2025-07-19 VUE3 你不知道的按钮与菜单权限(vue按钮权限管理)
- 2025-07-19 vue3-响应式基础之reactive(vue3.0响应式原理)
- 2025-07-19 什么是状态管理工具?(vuex)(状态管理具有哪两种方式)
- 2025-07-19 Vue3 开发总踩坑?这 10 个技巧让你少走半年弯路!
- 2025-07-19 Vue3 实战指南:15 个高效组件开发技巧解析
- 2025-07-19 Vue3 终于可以共享自己的屏幕给别人看了!
- 2025-07-19 vue3中到底使用Ref还是Reactive,我和同事吵起来了
- 最近发表
-
- Vue 前端开发——导入Excel/Csv(vue前端导入excel文件)
- element-ui实现动态表头的表格问题汇总
- 告别频繁登录!Nuxt3 + TS + Vue3实战:双Token无感刷新方案全解析
- 斯皮尔伯格:流媒体电影没资格拿奥斯卡?
- Vue3 “微商城”前台开发文档(vue前端开发工具)
- Ant Design of Vue 组件 a-table 如何横向排列
- 超简 Vue3+Ts 可视化拖拽设计器DreamDesign
- 基于 Vue.js 磁片栅格布局组件VueGridLayout
- vue中的select下拉框多选以及多选数据回显
- Vue脚手架使用Element UI(vue脚手架使用视频教程与步骤)
- 标签列表
-
- 向日葵无法连接服务器 (32)
- git.exe (33)
- vscode更新 (34)
- dev c (33)
- git ignore命令 (32)
- gitlab提交代码步骤 (37)
- java update (36)
- vue debug (34)
- vue blur (32)
- vscode导入vue项目 (33)
- vue chart (32)
- vue cms (32)
- 大雅数据库 (34)
- 技术迭代 (37)
- 同一局域网 (33)
- github拒绝连接 (33)
- vscode php插件 (32)
- vue注释快捷键 (32)
- linux ssr (33)
- 微端服务器 (35)
- 导航猫 (32)
- 获取当前时间年月日 (33)
- stp软件 (33)
- http下载文件 (33)
- linux bt下载 (33)