VSCode自定义代码片段13——Vue的状态大管家

Vue的状态大管家

{
	// V'Vuex
	// 13  如何自定义用户代码片段:VSCode =》左下角设置 =》用户代码片段 =》新建全局代码片段文件... =》自定义片段名称 =》编辑用户片段 =》ctrl+S 保存
	// Vue的状态大管家
	"Print to console": {
		"prefix": "V'Vuex",
		"body": [
			"// 位置:./store/index.js",
			"// 1,引入插件",
			"import Vue from \"vue\"",
			"import Vuex from \"vuex\"",
			"",
			"// 2,安装插件",
			"Vue.use(Vuex);",
			"",
			"// 3,创建对象",
			"const store = new Vuex.Store({",
			"    //【state:状态】------ ----- ---- ---【state:状态】 --- ---- ----- ------ 【state:状态】",
			"    state: {//状态",
			"        num: 18",
			"        , students: [",
			"            {",
			"                name: \"小白\",",
			"                age: 11",
			"            }",
			"            , {",
			"                name: \"小黑\",",
			"                age: 22",
			"            }",
			"            , {",
			"                name: \"小红\",",
			"                age: 33",
			"            }",
			"        ]",
			"    }",
			"    //【mutations:改变状态】------ ----- ---- ---【mutations:改变状态】 --- ---- ----- ------ 【mutations:改变状态】",
			"    , mutations: {//改变状态的方法,其中的每个方法默认传入state",
			"        // 被所有组件调用唯一方式:this.$store.commit(\"change_num\"[,对象参数])",
			"        // 一般要先初始化再使用,但也可以用Vue.set(对象,键,值)方法响应式添加属性,Vue.delete(对象,属性名)响应式删除对象属性",
			"        change_num() {",
			"            state.num++;",
			"        },",
			"        aUpdateInfo() {",
			"            state.students[0].name = \"老王\"",
			"        }",
			"    }",
			"    , actions: {//有异步操作的方法,其中的方法默认传入context(上下文,环境,语境)",
			"        // 被所有组件调用唯一方式:this.$store.disqatch(\"change_num\"[,对象参数])",
			"        aUpdateInfo(context) {",
			"            // 有时完成异步后可以用Promis回调.then()",
			"            return new Promise((resolve, reject) => {",
			"                setTimeout(() => {",
			"                    context.commit(\"updateInfo\")",
			"                }, 1000);",
			"            })",
			"        }",
			"    }",
			"    //【getters:计算属性】------ ----- ---- ---【getters:计算属性】 --- ---- ----- ------ 【getters:计算属性】",
			"    , getters: {//计算属性,对状态需要处理后的数据",
			"        // 被组件使用:$store.getters.more20stu",
			"        more20stu(state) {",
			"            return state.students.filter(n => n.age > 20);",
			"        }",
			"        , more20stu(state, getters) {//第二个参数固定为getters",
			"            return getters.more20stu.length;",
			"        }",
			"        , more20stu(state) {",
			"            return function name(age) {//需要其它参数时可返回成一个函数",
			"                return state.students.filter(n => n.age > age);",
			"            }",
			"        }",
			"    }",
			"    //【modules:子管家模块】------ ----- ---- ---【modules:子管家模块】 --- ---- ----- ------ 【modules:子管家模块】",
			"    , modules: {//相当于大管家的子管家,子管家有自己的独立作用域,它保存在大管家的state中,",
			"        // 被.vue组件调用小仓库:this.$store.state.mod_a.age",
			"        // 而其它属性同大管家一样调用 this.$store.commit(\"change_age_2\"[,对象参数])",
			"        mod_a: {",
			"            state: {",
			"                age: 10",
			"            }",
			"            , mutations: {",
			"                change_age_2() {",
			"                    state.age++;",
			"                }",
			"            }",
			"            , actions: {}",
			"            , getters: {} // 默认传入context,contxt.rootGetters可访问大管家的getters,同理context.rootState也是",
			"        },",
			"        mod_b: {",
			"",
			"        }",
			"    }",
			"});",
			"",
			"// 最后,导出到main.js然后注册",
			"export default store;",
			"",
			"// 补充:对象的解构",
			"//  const {name ,heigth ,age} = obj // 定义常量name,heigth,age分别取出对象中对应属性值 ",
		],
		"description": "Vue的状态大管家"
	}
}

@沉木

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值