vuex

VUE项目爬坑---6、vuex的真正存在的意义是什么

半腔热情 提交于 2020-04-30 12:56:40
VUE项目爬坑---6、vuex的真正存在的意义是什么 一、总结 一句话总结: a、【避免低效的数据传递】:当多个组件嵌套的时候,只能父子传递,那么中间的组件只能做传递数据之用,数据不是它用,它却传递数据,这样不合理 b、【管理组件状态】:vuex可以让多个组件很方便的获取和管理状态 1、提交 Mutations,分发 Action? 提交 Mutations:store.commit('increment') 分发 Action:store.dispatch('increment') 2、vuex中action、mutations、state和外部调用的关系? vuex中action操作mutations,mutations操作state,外部就dispatch action 3、我们可以import引入模块,那肯定是文件里面export了? 我们可以import引入模块,那肯定是文件里面export了,无论是常用的组件比如vue,还是我们简单的变量 import Vue from 'vue' import Vuex from 'vuex' import state from './state' import mutations from './mutations' import actions from './actions' import getters from '.

Read data from firebase in vuex

China☆狼群 提交于 2020-04-30 06:33:46
问题 i am new in Vue Js. I am doing an TODO web application. I took firebase as a backend and database. I am using Vuex for the state management. Until now i am able to add data to firebase, but when come time to read, i am stuck. i couldn't read data from firebase. It's show an empty array in component from where i am calling. This is my store.js import Vue from 'vue'; import Vuex from 'vuex'; import firebase from "firebase"; Vue.use(Vuex); export const store = new Vuex.Store({ state:{ events:[],

关于vue监听dom与传值问题

﹥>﹥吖頭↗ 提交于 2020-04-29 18:55:33
1. 代码初始化一次执行部分属性为空的情况 原因: 异步加载 + 立马 传值时      直接渲染 dom里面 能实时更新 (无影响)      不能直接dom中渲染(有影响) 解决方法:需要通过监听的方式来处理返回值 异步加载 + 过后点击 通过其他方法传值(如:vuex )      直接dom里面 能实时更新(无影响)      不能直接在dom中渲染(基本无影响) 异步加载 + v-if      直接dom里面 能实时更新(无影响)      不能直接在dom中渲染(无影响)     获取到vuex中的值 立马 传值问题 可以用计算属性 也可以在data中申明 然后在created 方法中取vuex中的值(直接在data里面取 是取不到的 为空 大概是渲染没那么快 从而推断出 传值也是在created 方法之后) 此步骤不为异步 所以子组件接收 计算属性跟data接收都可以  总结:父 =(异步)》子 js处理需要监听变化 而 直接传到dom中 dom本身就能实时监听     vuex getters 取值是在created 之后 传值也是在cerated之后 vuex取值不是异步 传值是否异步 直接dom中不用管 如果是js接收 并且异步的话 需要监听 来源: oschina 链接: https://my.oschina.net/u/4353432/blog

Vue.js---SPA与router是密不可分的

拥有回忆 提交于 2020-04-29 17:51:33
Vue.js---SPA与router是密不可分的 1. 创建vue06,安装router和vuex 2. 3. router: 在MVVM的模型之上,外加一个router, 实现不同组件的切换,每个组件都是单独一个MVVM模型 4. 以上这一套是SPA 单页面应用程序 5. 敲代码熟悉Vue 6. 来源: oschina 链接: https://my.oschina.net/u/4290521/blog/4258572

vuex介绍和vuex数据传输流程

左心房为你撑大大i 提交于 2020-04-29 16:34:57
1 、什么是vuex?     公共状态管理;解决多个非父子组件传值麻烦的问题;简单说就是多个页面都能用Vuex中store公共的数据     a、并不是所有的数据都要放在Vuex中,只有各个组件公用的一些数据会放在Vuex当中     b、Vuex是一个公共状态管理模式 并不是数据库 所以不可能持久保存一些数据       当用户刷新浏览器的时候那么数据就有可能消失     c、Vuex主要应用在大型的单页面开发中 2 、vuex的特点     1、遵循单向数据流     2、Vuex中的数据是响应式的 3 、vuex的流程图:    4 、vuex的具体使用:     一、 使用vuex:       1、安装: yarn add vuex       2、使用插件(创建仓库): 存放所有组件内的数据(传的值)           新建index.js:            import Vue from "vue" ; import Vuex from "vuex" ; import axios from "axios" ; Vue.use(Vuex); const store = new Vuex.store({ // 配置项(vuex中5个属性,这里只说三个) // 公共仓库,储存数据 state:{ n: 10 }, // 处理异步函数和业务逻辑,里面的参数都是函数

Vue 实现的音乐项目 music app 知识点总结分享

情到浓时终转凉″ 提交于 2020-04-29 15:36:45
其他 此应用的全部数据来自 QQ音乐,利用 axios 结合 node.js 代理后端请求抓取 全局通用的应用级状态使用 vuex 集中管理 全局引入 fastclick 库,消除 click 移动浏览器 300ms 延迟 页面是响应式的,适配常见的移动端屏幕,采用 flex 布局 疑难总结 & 小技巧 关于 Vue 知识 & 使用技巧 v-html 可以转义字符,处理特定接口很有用 watch 对象可以观测 属性 的变化 像这种父组件传达子组件的参数通常都是在data()里面定义的,为什么这里要放到created()定义,两者有什么区别呢? 因为这个变量不需要观测它的变化,因此不用定义在 data 里,这样也会对性能有所优化 不明白什么时候要把变量放在data()里,什么时候又不需要放 ? 需要监测这个数据变化的时候,放在 data() 里,会给数据添加 getter 和 setter 生命周期 钩子函数 生命周期钩子函数,比如 mounted 是先触发子组件的 mounted,再会触发父组件的 mounted,但是对于 created 钩子,又会先触发父组件,再触发子组件。 销毁计数器 如果组件有计数器,在组件销毁时期要记得清理,好习惯 对于 Vue 组件,this.$refs.xxx 拿到的是 Vue 实例,所以需要再通过 $el 拿到真实的 dom 关于 JS 知识 &

Vue兄弟组件(非父子组件)状态共享与传值

寵の児 提交于 2020-04-29 15:30:10
前言 :网上大部分文章写的有点乱,很少有讲得易懂的文章。    所以,我写了篇在我能看得懂的基础上又照顾到大家的文章 =。= 作者:X1aoYE 备注:此文原创,转载请注明~ 内容里的<br>请无视。。 关键字: Vue、非父子组件、兄弟组件、传值、共享状态 应用例子: 主题颜色更换 购物车传值 就像名字所说的兄弟组件传值,自己理解其他例子了哈~ 小型项目:   推荐使用 global event bus (事件总线) ,不然小项目里用 Vuex 相对来说会挺繁琐    步骤:    1. 新建 一个 bus.vue (只是个 .vue ,不用想太多)   import Vue from 'vue' //import一个vue类   export const bus = new Vue() //实例化并将它export    2. 使用 在我们的一个组件(这里指的是发送方)里: import { bus } from 'bus.js' // 其他代码~ bus.$emit('myEvent', 'this.mydata') // 其他代码~ // 解释:bus.$emit('自定义事件名',要传送的数据);    3. 接着使用 bus.vue     紧接着在我们另一个组件(这里指的是接收方)里:     备注:bus. $on ('事件名',callback) --------

vuex(一)mutations

生来就可爱ヽ(ⅴ<●) 提交于 2020-04-29 14:46:07
前言:vuex的使用,想必大家也都知道,类似于状态库的东西,存储某种状态,共互不相干的两个组件之间数据的共享传递等。我会分开给大家讲解vuex的使用,了解并掌握vuex的核心(state,mutations,getters,actions). 首先,我们需要将vuex的安装依赖下载下来,npm install vuex, 以下代码都会在vue-cli下完成 通过这样一个案例给大家说明mutations和state的作用及使用: 上述功能:主要通过便利状态库中的数据后,点击取消关注后,会从状态库中更新数据,并变更virtual dom 我们需要先了解一个基本的东西: state:类似于vue中的data,状态库中的数据都放在state中,外部读取数据时,也是从state中读取的数据。 mutations:里面可以写一些方法供我们来更改state中的数据,需要配合commit使用。页面传递过来需求,然后commit(提交)到mutations中的某方法中用以改变state中的数据。可以说是存入数据 前面讲到的都是如何获取state的数据,那如何把数据存储到state中呢?在 Vuex store 中,实际改变 状态(state) 的唯一方式是通过 提交(commit) 一个 mutation。mutations下的函数接收state作为参数,接收一个叫做payload(载荷

vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据

橙三吉。 提交于 2020-04-29 14:00:47
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据 在vue项目中组件间相互传值或者后台获取的数据需要供多个组件使用的情况很多的话,有必要考虑引入vuex来管理这些凌乱的状态,今天这边博文用来记录这一整个的过程,后台api接口是使用webpack-server模拟的接口,这个前面的文章中有提到,需要的可以去翻阅。 整个的流程是在组件的created中提交dispatch,然后通过action调用一个封装好的axios然后再触发mutation来提交状态改变state中的数据,然后在组件的计算属性中获取state的数据并渲染在页面上 首先新需要在项目中安装vuex: 运行命令 npm install vuex --save-dev 在项目的入口js文件main.js中 import store from './store/index' 并将store挂载到vue上 new Vue({ el: '#app', router, store, template: '<App/>', render: (createElement) => createElement(App) }) 然后看下整个store的目录结构,modules文件夹用来将不同功能也面的状态分成模块,index.js文件夹是store的入口文件,types文件夹是定义常量mutation的文件夹

vue3.0&qiankun2.0极速尝鲜,微前端进阶实战!

孤者浪人 提交于 2020-04-29 11:56:24
wl-mfe 基于 vue3.0-beta 及 qiankun2.0 极速尝鲜!微前端进阶实战项目。 项目地址: wl-mfe 微前端实战详细入门教程及解放方案请转至我另一篇文章: 微前端实战看这篇就够了 - Vue项目篇 。 项目地址: wl-micro-frontends [wl-qiankun] && 在线访问 最终效果 项目启动 npm run cinit // 使用cnpm下载依赖,推荐cinit节省下载时间 npm run init // 或 使用npm下载依赖 npm run serve // 运行全部项目 npm run build // 打包全部项目 复制代码 注意:如果下载报错,报 bin/sh 找不到start命令,那你可能是mac or linux,那就进入目录一个一个下载运行吧。 另:执行批量服务耗时较久,请耐心等待,init与build成功会在控制台提示,serve稍加等待或刷新浏览器即可。 实战详解todo 主应用基座构建 子应用构建 微应用间通信 跨应用通信与vuex结合 主应用基座构建 主应用需要用到elementui,暂时使用vue2.0+qiankun2.0版本。vue3.0beta体验在下面【子应用构建】章节 主应用项目主要在5个文件: utils 文件夹, app.vue , appRegister.js , main.js ,