本系列主要整理前端面试中需要掌握的知识点。本节介绍对Vue.observable的了解。
Vue.observable({count:1})其作用等同于new Vue({count:1})。在非父子组件通信时,通常使用$bus或者vuex,但是实现的功能不复杂,又使用上面的方法又有点繁琐,这时,observable是一个很好的选择。
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)
}
}
<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可以定义一些数据,并使其变成响应式数据。如果在js中写observable,这里面的数据vue文件中可以直接使用。