vue3怎么存储数据,子页面获取数据
时间: 2023-08-15 08:09:48 浏览: 63
Vue 3 中可以使用响应式对象来存储数据,响应式对象可以自动追踪数据的变化并更新对应的视图。具体有以下几种方式:
1. 使用 setup 函数中的 reactive 方法创建响应式对象,并将其暴露给子组件。
```javascript
import { reactive } from 'vue'
export default {
setup() {
const state = reactive({
data: 'Hello World'
})
return { state }
}
}
```
在子组件中可以直接通过 props 获取到父组件中暴露的响应式对象。
2. 将数据存储在 Vuex 中,然后在子页面中通过 Vuex 的辅助函数 mapState 或者 mapGetters 来获取数据。
```javascript
import { mapState } from 'vuex'
export default {
computed: {
...mapState(['data'])
}
}
```
3. 如果子页面和父页面是兄弟组件,可以通过事件来传递数据。
在父组件中:
```javascript
export default {
data() {
return {
data: 'Hello World'
}
},
methods: {
sendData() {
this.$emit('update:data', this.data)
}
}
}
```
在子组件中:
```javascript
export default {
props: ['data'],
mounted() {
this.$parent.$on('update:data', data => {
this.data = data
})
}
}
```
以上是几种常用的存储数据和子页面获取数据的方式,根据具体场景选择合适的方法即可。