【前端知识之Vue】对Vue.observable的了解

前言

本系列主要整理前端面试中需要掌握的知识点。本节介绍对Vue.observable的了解。


一、Observable是什么

  • 定义:让一个对象变成响应式数据,Vue内部会用它来处理data函数返回的对象。
  • 返回的对象可以直接用于渲染函数和计算属性内,并且会在发生变更时触发相应的更新。也可以作为最小化的跨组件状态存储器。
  • Vue.observable({count:1})其作用等同于new Vue({count:1})
  • 在Vue2中,被传入的对象会直接被Vue.observable变更,它和被返回的对象是同一个对象;Vue3中,会返回一个可响应的代理,而对源对象直接进行变更仍然是不可响应的。

二、使用场景

在非父子组件通信时,通常使用$bus或者vuex,但是实现的功能不复杂,又使用上面的方法又有点繁琐,这时,observable是一个很好的选择。

  • 创建一个js文件
import Vue from 'vue'

export let state = Vue.observable({
    name: '张三',
    age:38,
})

export let mutations = {
    changeName(name) {
        state.name = name
        console.log(state.name)
    },
    setAge(age) {
        state.age = age
        console.log(state.age)
    }
}
  • 在.vue文件中使用
<template>
  <div>
    {{name}},{{age}}
    <button @click="changeName('李四')">changeName</button>
    <button @click="setAge(18)">setAge</button>
  </div>
</template>

<script>
import {state,mutations} from './test.js'
export default {
    computed:{
        name(){
            return state.name
        },
        age() { 
            return state.age
        }
    },
    methods: {
        changeName: mutations.changeName,
        setAge:mutations.setAge,
    }
}
</script>

三、面试官:介绍一下Observable

回答:Observable可以定义一些数据,并使其变成响应式数据。如果在js中写observable,这里面的数据vue文件中可以直接使用。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值