vue单页面程序共享数据,状态管理方法,vuex的简化版
在程序文件夹中创建一个js文件,以保存所有共享数据
// 共享数据
const Store = {
state: {
name: '',
age: '',
sex:''
},
setName(name) {
this.state.name = name
console.log('set', this.state.name)
},
// 设置年龄
setAge(val) {
this.state.walletAddress = val
console.log('set', this.state.walletAddress)
},
// 设置性别
setSex(val) {
this.state.walletNetworkId = val
console.log('set', this.state.walletNetworkId)
},
}
export default Store
在需要使用数据的组件中引入数据文件,
<script>
// 引入共享数据文件
import Store from "../store.js";
export default {
data() {
return {
// 页面中引入共享数据的。注意只能引入到这一层,否者没法触发动态更新。
//在页面中使用的时候 这样使用{{state.name}}
state: Store.state,
}
},
methods:{
setName(){
//修改共享数据的值
Store.setName('张三')
}
}
}
</script>
vue单页面程序,不同组件之间怎么传输数据,以往都是使用sessionStorage,这样特麻烦又要转对象又要转字符串的,还经常容易搞错。vue官方有解决方案,组件之间的父子传值也可以实现,如果只作为显示,父组件给子组件传值去显示这样是极好的,但是子组件要修改值就需要定义事件,然后父组件捕获事件,这样比较复杂。vuex可以实现数据共享的烦恼,但是官方文档说了,vuex适合中大型的单页程序,叫看简单实现方案,简单实现方案我看了是一脸懵逼,相当于啥都没写找了不少资料终于摸索出来了。