博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
vuex非父子组件间改值
阅读量:6162 次
发布时间:2019-06-21

本文共 1274 字,大约阅读时间需要 4 分钟。

最近在用vue写单页面项目嘛,然后就有遇到这问题啦,看了很多参考,要么繁琐的一塌糊涂,要么就是传值并不是改值,下面我述说下方法,最清晰的简单demo

父子间用props

非父子间用vuex

  store(store/index.js)

state: {    x:66},mutations:{    add:function(state,x){//这边的x来自于a.vue        state.x=1+state.x;    }}.........

  a.vue

  先引用过来store(import { store } from '../store';新手来说会被多种花样弄晕,还有import * as store form ......)

  data    x:store.state.x

  然后这只是初始化话绑定,并不是一直绑定的

  所以,在执行动作时,要执行

console.log(this.x);//66this.$store.commit('add');this.x=store.state.x;console.log(this.x);//67

  就相当于到store的x处理了下,怎么处理就自己想怎么弄就怎么弄了,然后到b.vue

  b要修改a的x呢?

  咋整,还是改不了,因为a的x不是实时绑定store的x的

  然后我这么整,将a的this传过去到store,在store里处理了a的x,居然有效果的

this.$store.commit('add',this);//将this对象传到store那去//this.x=store.state.x;

  

storeadd:function(state,x){//x-a传过来的this    state.x=1+state.x;    x.x=state.x;       //  ====this.x=store.state.x;(a里面的)}

  好了,the problem has solved

  既然a的x处理在store里面,然后在store里面在a调用store的add时把a的this留在store里面嘛,

storestate: {    	x:66,    	home:''},...........
add改成:add:function(state,x){    state.x=1+state.x;    x.x=state.x;    state.home=x;//留住a的this},

  然后store里新加个方法,给b用的

back:function(state){    state.x--;    state.home.x=state.x;}

  b

this.$store.commit('back');

  好了,经测试ok的,没有用到那么多的getters,mutations........就是一个跨组件修改值

转载于:https://www.cnblogs.com/hhweb/p/6928472.html

你可能感兴趣的文章
GWT用frame调用JSP
查看>>
大型高性能ASP.NET系统架构设计
查看>>
insert select带来的问题
查看>>
EasyUI 添加tab页(iframe方式)
查看>>
mysqldump主要参数探究
查看>>
好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题...
查看>>
使用addChildViewController手动控制UIViewController的切换
查看>>
Android Fragment应用实战
查看>>
SQL Server查询死锁并KILL
查看>>
内存或磁盘空间不足,Microsoft Office Excel 无法再次打开或保存任何文档。 [问题点数:20分,结帖人wenyang2004]...
查看>>
委托到Lambda的进化: ()=> {} 这个lambda表达式就是一个无参数的委托及具体方法的组合体。...
查看>>
apache 伪静态 .htaccess
查看>>
unity3d 截屏
查看>>
ASP.NET MVC学习之控制器篇
查看>>
MongoDB ServerStatus返回信息
查看>>
分析jQuery源码时记录的一点感悟
查看>>
程序局部性原理感悟
查看>>
UIView 动画进阶
查看>>
Spring如何处理线程并发
查看>>
linux常用命令(用户篇)
查看>>