vuex

How can I send data from parent to child component by vuex store in vue component?

空扰寡人 提交于 2019-11-29 18:05:18
My parent component like this : <template> ... <search-result/> ... </template> <script> import {mapActions} from 'vuex' ... export default { ... props: ['category'], mounted() { this.updateCategory(this.category) }, methods: { ...mapActions(['updateCategory']), } } </script> My child component like this : <template> ... </template> <script> import {mapGetters} from 'vuex' ... export default { ... mounted() { console.log(this.getCategory) }, computed: { ...mapGetters(['getCategory']) }, } </script> My modules vuex to send data between components like this : import { set } from 'vue' ... //

Why the value from input is not passed to VUEX

点点圈 提交于 2019-11-29 17:16:24
I can't transfer the value from input to the store . When I click on the add item button, I need to create a block with its delete button and the text entered in the input . And then save it all in localstorage. But now I am creating only a new block without text. Please help me fix my code to make it work. Here's how it should work But how it works now What I'm doing wrong? How do I transfer the value from Input to Vuex? Here is my code <template> <f7-block-title>Some items</f7-block-title> <f7-block v-for="(cat, n) in getCats" :key="n"> <span>{{ cat }}</span> <f7-button fill color="red"

Vuex框架原理与源码分析

混江龙づ霸主 提交于 2019-11-29 13:54:53
本文授权转自微信公众号“美团点评技术团队”。 作者简介: 明裔,美团外卖高级前端研发工程师,2014年加入美团外卖,负责Web主站开发。先后参与了外卖B端、C端、配送等全业务线系统开发后,目前主要负责商家券活动系统。 责编: 陈秋歌,关注前端开发等领域,寻求报道或投稿请发邮件至chenqg#csdn.net,或加微信:Rachel_qg。 Vuex是一个专为Vue服务,用于管理页面数据状态、提供统一数据操作的生态系统。它集中于MVC模式中的Model层,规定所有的数据操作必须通过 action - mutation - state change 的流程来进行,再结合Vue的数据视图双向绑定特性来实现页面的展示更新。统一的页面状态管理以及操作处理,可以让复杂的组件交互变得简单清晰,同时可在调试模式下进行时光机般的倒退前进操作,查看数据改变过程,使code debug更加方便。 最近在开发的项目中用到了Vuex来管理整体页面状态,遇到了很多问题。决定研究下源码,在答疑解惑之外,能深入学习其实现原理。 先将问题抛出来,使学习和研究更有针对性: 使用Vuex只需执行 Vue.use(Vuex) ,并在Vue的配置中传入一个store对象的示例,store是如何实现注入的? state内部是如何实现支持模块配置和模块嵌套的? 在执行dispatch触发action(commit同理)的时候

58同城前端笔试

别说谁变了你拦得住时间么 提交于 2019-11-29 10:28:50
1.GET 和 POST安全性比较与讨论 两者最基本区别 GET请求通过URL(请求行)提交数据,在URL中可以看到所传参数。POST通过“请求体”传递数据,参数不会在url中显示 GET请求提交的数据有 长度限制 ,POST请求没有限制。 GET请求返回的内容可以被浏览器缓存起来。而每次提交的POST,浏览器在你按 下F5的时候会跳出确认框,浏览器不会缓存POST请求返回的内容。 GET对数据进行查询,POST主要对数据进行增删改!简单说, GET是只读 ,POST是写。 不同观点 我认为 post,更安全 一些,因为get传输方式将在URL中显示参数,更容易引发一些“不怀好意”人的兴趣,例如上边出现了username和userpwd等特殊字符时,更容易给他们一些兴趣。虽然可以编码,当是也是可以解码的。而post则对方看不见,即使一些高手截获这些信息,也需要它筛选还有解码,相对来说比get方法更加安全。当然是没有绝对的安全的。 HTTP协议中提到GET是安全的方法(safe method),其意思是说GET方法不会改变服务器端数据,所以不会产生副作用。如果是该用POST的地方用了GET,又说GET不安全,那GET也太冤枉了。也就是说,只要我们正确选择使用GET和POST,那么GET是安全的。 只要我们正确使用二者,因为GET方法中不对数据进行修改,不传送一些保密的信息

VueJS中学习使用Vuex详解

冷暖自知 提交于 2019-11-29 09:43:06
VueJS中学习使用Vuex详解 转载: https://segmentfault.com/a/1190000015782272 在SPA单页面组件的开发中 Vue的vuex和React的Redux 都统称为同一状态管理,个人的理解是全局状态管理更合适;简单的理解就是你在state中定义了一个数据之后,你可以在所在项目中的任何一个组件里进行获取、进行修改,并且你的修改可以得到全局的响应变更。下面咱们一步一步地剖析下vuex的使用: 首先要安装、使用 vuex 首先在 vue 2.0+ 你的vue-cli项目中安装 vuex : npm install vuex --save 然后 在src文件目录下新建一个名为store的文件夹,为方便引入并在store文件夹里新建一个index.js,里面的内容如下: import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); const store = new Vuex.Store(); export default store; 接下来,在 main.js里面引入store,然后再全局注入一下,这样一来就可以在任何一个组件里面使用this.$store了: import store from './store'//引入store new Vue({ el: '#app',

前端面试题

六眼飞鱼酱① 提交于 2019-11-29 08:36:47
Vue: 一、MVVM模式与MVC模式的区别 MVVM即Model-View-ViewModel。 它是将“数据模型数据双向绑定”的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双向的,因此视图的数据的变化会同时修改数据源,而数据源数据的变化也会立即反应到View上。 Vue是以数据为驱动的,Vue自身将DOM和数据进行绑定,一旦创建绑定,DOM和数据将保持同步,每当数据发生变化,DOM会跟着变化。 ViewModel是Vue的核心,它是Vue的一个实例。Vue实例时作用域某个HTML元素上的,这个HTML元素可以是body,也可以是某个id所指代的元素。 DOM Listeners和Data Bindings是实现双向绑定的关键。DOM Listeners监听页面所有View层DOM元素的变化,当发生变化,Model层的数据随之变化;Data Bindings监听Model层的数据,当数据发生变化,View层的DOM元素随之变化。 MVC即Model-View-Controller MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。 二、v-show与v-if的区别

vue 数据通信总结

妖精的绣舞 提交于 2019-11-29 07:51:36
数据单向流动prop react也是一样prop 1. prop / $emit (常用 父子组件传递) //父传给子 <child :title="title"></child> //子通过props接收 export default { name: 'demo', data: function() {}, props: { title: { type: String } }, }; //子传给父 methods: { childTitle() { this.$emit('changeTitle', `我给父组件的第${this.key}次`); } } }; //父接收 <child @changeTitle="parentTitle"></child> //自定义事件 2. $emit / $on (任意组件间传递) 创建个空的组件,来作eventbus 用来触发及监听事件 // 父组件 <template> <div class="container"> <child1 :Event="Event"></child1> <child2 :Event="Event"></child2> <child3 :Event="Event"></child3> </div> </template> <script> const Event = new Vue(); //***重点

How to use vue-resource ($http) and vue-router ($route) in a vuex store?

江枫思渺然 提交于 2019-11-29 04:13:23
Before I was getting movie detail from the component's script. The function first check whether the movie ID of the store is same as of the route's param movie ID. If its same then don't get the movie from the server API, or else get the movie from the server API. It was working fine. But now I am trying to get the movie details from the store's mutation. However I am getting error Uncaught TypeError: Cannot read property '$route' of undefined How to use vue-router ($route) to access the params and vue-resource ($http) to get from the server API in vuex store? store.js: export default new Vuex

vuex 源码解读

大憨熊 提交于 2019-11-29 03:20:15
首先让我们看一下,vuex的基本使用 import Vuex from 'vuex' import cart from './modules/cart' import products from './modules/products' import createLogger from '../../../src/plugins/logger' Vue.use(Vuex) const debug = process.env.NODE_ENV !== 'production' export default new Vuex.Store({ modules: { cart, products }, strict: debug, plugins: debug ? [createLogger()] : [] })``` 由于使用了use方法,可看出vuex是个插件, 那我们就先看,vuex源码的install 方法,以下代码节选至vue源码index.js和mixin.js中。 // index.js中install 方法 applyMixin(Vue) mixin.js Vue.mixin({ beforeCreate: vuexInit }) function vuexInit () { const options = this.$options // store injection

手写一个简单的vuex

微笑、不失礼 提交于 2019-11-29 02:05:06
vuex是一个vue的一个数据集中管理方案,现在我们来写一个简单的vuex 首先vuex接受的是一个对象,其中该对象包含了: state,初始数据 getters,数据获取对象 actions,用来改变数据的行为对象 mutations,用来响应actions的行为来进行更改数据的对象 所以我们建立一个函数它接受一个这样的对象: 我们想一下,vuex内部的操作有哪些函数了: dispatch:派发对应的action,接受一个action名,以及对应的自定义参数 commit:进行提交我们的mutations函数,接受一个mutation函数名,以及对应的自定义参数 getters:来获取对应的state内部的数据, 同时我们可以通过state拿到整个state对象 那我们继续往下看: 现在我么返回一个对象整个对象的内部就是我们的相关的操作函数, 我们一个个的书写: 对于getters: 我们直接遍历我们传入的getters对象然后执行所有getter传入state并将所有的getter放入一个对象,返回这个对象。然后我们就可以通过getters方法拿到对于的getters里面的数据. 对于commit: 我们知道commit是来触发mutations函数的,所以我们先获取mutation函数名,以及对应的自定义参数, 然后直接执行对应的mutation函数即可。