vuex的state在组件选项data和computed上引用的区别

引用在vue组件的data选项,不因数值被改变而更新
引在在vue组件的computed选项,因数值变化而更组件

案例代码如下,调整下引用vue和vuex地址即可展示

<!DOCTYPE html>
<html>
<head>
  <title> vuex的配置state,mutations 和vue组件调用及模板组件</title>
  <script src="js/vue.js" type="text/javascript"></script>
  <script src="js/vuex.js" type="text/javascript"></script>

  <meta charset="utf-8"/>
</head>
<body>
	<div id="app">
		{{msg}}
		<!-- 此处渲染count来自vue组件,computed选项,随值改变而改变渲染 -->
		<h3>{{count}}</h3>
		<!-- 此处渲染count2来自vue组件data选项,不随值改变而改变渲染 -->
		<h3>{{count2}}</h3>
		<!-- 直接调用vuex的state选项,不推荐,推荐是computed引用后再洹染 -->
		<h3>{{this.$store.state.count}}</h3>
		<input type=‘button‘ value="clickme +" v-on:click=‘incrementCount‘>
		<hr/>
		<!-- 组件名称有大小写,模板调用用短线隔开
		如:studentV 转换成student-v -->
		<student-v></student-v>
	</div>
	<script>
		const store = new Vuex.Store({
		  state: {
		    count: 0,
		    student:‘学生信息‘
		  },
		  mutations: {
		    increment (state) {
		      state.count++
		    }
		  }
		})
		// 创建一个 student 组件
		const studentV = {
		  template: `<div>{{ student }}</div>`,
		  computed: {
		    student () {
		      return store.state.student+" "+store.state.count
		    }
		  }
		}

		var app=new Vue({
			el:‘#app‘,
			data(){
				return{
					msg:‘app.vue 组件‘,
					count2:this.$store.state.count
				}
			},
			store,
			components:{studentV},
		computed:{
			count:function(state) {
				return this.$store.state.count
			}
		},
		methods:{
			incrementCount:function(){
				//引用 vuex下的mutations选项书写的函数
				return this.$store.commit(‘increment‘)
			}
		}

		})
	</script>
</body>
</html>

原文地址:https://www.cnblogs.com/asplover/p/11356397.html

时间: 2024-10-08 22:02:19

vuex的state在组件选项data和computed上引用的区别的相关文章

Vue组件选项props

前面的话 组件接受的选项大部分与Vue实例一样,而选项props是组件中非常重要的一个选项.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props 向下传递数据给子组件,子组件通过 events 给父组件发送消息.本文将详细介绍Vue组件选项props 静态props 组件实例的作用域是孤立的.这意味着不能 (也不应该) 在子组件的模板内直接引用父组件的数据.要让子组件使用父组件的数据,需要通过子组件的 props 选项 使用Prop传递数据

关于 vuex 报错 Do not mutate vuex store state outside mutation handlers.

10 :问题描述 在使用vuex 时,有时候 我们在mutation中定义好方法,在页面或组件提交时 有可能经常会遇到这个错误:---->>Do not mutate vuex store state outside mutation handlers. 9. 原因: The reason is that arrays are stored as references in Javascript and payload.items is likely to be changed outside

vuex this.$store.state.属性和mapState的属性中的一点点区别

做泰康公众号的项目时候有一个需求创建公众号的时候后台有一个社区id提供给后台展现人员和部门,在群发消息时候也要给后台一个社区id只不过获取社区的id接口和上一个不是一样的,本来在页面中写了两个select,一个是用elementUI的select选择器,另一个是在标签选择器,现在在创建公众号时使用公众号社区的id让群发消息的select隐藏,我是用vuex在state里声明两个变量分别设置falese ,true,这样在引用各个接口时候v-show显示相应的数据,用this.$store.sta

vuex + watch = 监听组件渲染状态

我们常常有这样的需求,在某组件渲染完成后,才能进行数据请求,请求与这个值有关.首先想到的是,在mounted里面执行 created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图. mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作. 经过试验发现:页面已经渲染,子组件还没渲染出来,所以mounted不能满足要求. 后来求助大神+度娘,终于找到了一个可靠的解决方案!!!vuex + watch (vueX全局状态

通用简易数据访问组件 Gem.Data

通用简易数据访问组件 Gem.Data,非ORM,无需配置,直接编写SQL语句操作数据.支持多种数据库 Access.MySql.SqlServer 等. 1.初始化数据访问组件 IXDatabase dbAccess = XDatabaseBuilder.CreateAccessDb("demo.mdb"); IXDatabase dbMySql = XDatabaseBuilder.CreateMySqlDb("127.0.0.1", 3306, "D

vue单页面应用刷新网页后vuex的state数据丢失问题以及beforeunload的兼容性

最近在用vue写h5项目,当使用window.location重定向页面或者刷新当前页面时, 发现当刷新网页后,保存在vuex实例store里的数据会丢失. 后来在网上查找大神的解决方案如下: export default { name: 'App', created () { //在页面加载时读取sessionStorage里的状态信息 if (sessionStorage.getItem("store") ) { this.$store.replaceState(Object.as

Vue.js 组件中data的使用

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con

Vuex的this.$store.commit和在Vue项目中引用公共方法

2018年11月22日 20:50:29 Funfction_Zero 阅读数 3230 1.在Vue项目中引用公共方法 作为一个新人小白,在使用vue的过程中,难免会遇到很多的问题,比如某个方法在很多组件中都能用的上,如果在每个组件上都去引用一次的话,会比较麻烦,增加代码量.怎么做比较好呢,话不多说直接看代码把 首先 要在main.js中引入公共js.然后,将方法赋在Vue的原型链上.像图中这样. 然后在需要的组件上去引入这个方法 mouted (){ //调用方法 this.common.l

Spring Data MongoDB实战(上)

Spring Data MongoDB实战(上) 作者:chszs,版权所有,未经同意,不得转载.博主主页:http://blog.csdn.net/chszs 本文会详细展示Spring Data MongoDB是如何访问MongoDB数据库的.MongoDB是一个开源的文档型NoSQL数据库,而Spring Data MongoDB是Spring Data的模块之一,专用于访问MongoDB数据库.Spring Data MongoDB模块既提供了基于方法名的查询方式,也提供了基于注释的查询