vuex

Vue组件通信中eventBus的使用

大兔子大兔子 提交于 2020-03-07 17:00:16
vuex加入后,对组件之间的通信有了更加清晰的操作,对于中大型的项目来说,一开始就把vuex的使用计划在内是明智的选择。 然而在一些小型的项目,eventBus的作用就体现出来了。 主要是现实途径是在要相互通信的兄弟组件之中,都引入一个新的vue实例,然后通过分别调用这个实例的事件触发和监听来实现通信和参数传递。 这里来看一个简单的例子: 比如,我们这里有三个组件,main.vue、click.vue、show.vue。click和show是父组件main下的兄弟组件,而且click是通过v-for在父组件中遍历在了多个列表项中。这里要实现,click组件中触发点击事件后,由show组件将点击的是哪个dom元素console出来。 首先,我们给click组件添加点击事件 < div class= "click" @click .stop .prevent = "doClick($event)" ></div> 想要在doClick()方法中,实现对show组件的通信,我们需要新建一个js文件,来创建出我们的eventBus,我们把它命名为bus.js import Vue from 'vue' ; export default new Vue(); 这样我们就创建了一个新的vue实例。接下来我们在click组件和show组件中import它。 import Bus from

Vue.observable( object )

不羁的心 提交于 2020-03-06 21:35:39
vue2.6发布的一个新的api,可以处理简单的跨组件共享数据状态的问题 ,可以说是个精简版的vuex 来个示例 // /store/store.js import Vue from 'vue' export const store = Vue.observable({ count: 0 }) export const mutations = { setCount (count) { store.count = count } } 使用 <template> <div> <label for="bookNum">数 量</label> <button @click="setCount(count+1)">+</button> <span>{{count}}</span> <button @click="setCount(count-1)">-</button> </div> </template> <script> import { store, mutations } from '../store/store' // Vue2.6新增API Observable export default { name: 'Add', computed: { count () { return store.count } }, methods: { setCount: mutations

Vue“全家桶”【一】--Vuex

倖福魔咒の 提交于 2020-03-05 19:15:07
快速导航 Vuex中的 State Vuex中的 Mutation Vuex中的 Action Vuex中的 Getter Vuex中的 State 1、State提供唯一的公共数据源,所有的共享的数据都要统一放在Store中的State中进行存储 const store = new Vuex.Store({ state:{ count:0 } }) 2、组件访问State中数据: 第一种方式this.$store.state.全局数据名称 < template > < div class = "hello" > < ! -- 在template中 this 可以省略 -- > < h1 > { { $store . state . count } } < / h1 > < / div > < / template > 第二种方式 从 vuex中按需导入mapState 函数 // 从 vuex中按需导入mapState 函数 < script > import { mapState } from 'vuex' export default { data ( ) { return { } } , computed : { ... mapState ( [ 'count' ] ) } } < / script > 如何使用 mapState, 直接使用 < template > <

Vue的基础理解(五)

守給你的承諾、 提交于 2020-02-29 16:56:15
自定义v-model是怎么实现的? v-model实质上是v-on和v-bind的语法糖,用来在表单控件或组件上创建双向绑定; <input v-model='searchText'> 等价于 <input v-bind:value='searchText' v-on:input='searchText = $event.target.value'> 在一个组件上使用v-model,默认会为组件绑定名为value的prop和名为input的事件 Vuex和单纯的全局对象有什么区别? 单纯的全局变量:调试将会变为噩梦,任何时间,我们应用的任何部分,在任何数据改变后,都不会留下变更的记录,也就是可以随意更改,而且 没有留下任何记录,后期项目会无法维护 。 vuex中所有的状态更新的唯一方式都是提交mutation,异步操作需要通过action来提交mutation(dispatch)。这样使得我们可以 方便地跟踪每一个状态的变化 ,从而让我们能够实现一些工具帮助我们更好地使用vuex; 为什么vuex的mutation中不能做异步操作? vuex中所有的状态更新的唯一方式都是提交mutation,异步操作需要通过action来提交mutation(dispatch)。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地使用vuex;

关于Vuex的笔记

浪尽此生 提交于 2020-02-28 03:46:59
1.vuex的理解: 1.集中管理组件的状态 2.为组件之间通信提供一套标准规则(最佳实践) vuex参考借鉴flux/Redux 2.如何将vuex引入工程: 1.Vue.use(Vuex) 2.new Vuex.store(){} 3.new Vuex.store(){}: state(存放全局的属性),mutation(操作改变状态),actions(异步操作,包含多个mutation),getters(计算属性),modules(模块化) 流程:【组件】 -- dispatch--> 【actions】 --- commit -- 【mutations】 ----> 【state】 4. mutations 的意义,为什么在 actions 和 state 之间加了 mutations ? 不要直接改变状态,通过 mutations 改变状态(每一次 mutations 操作都是一个状态的快照, mutations 改变状态时,给状态创建了 快照(某一个时刻的版本) 注意:操作的 【颗粒度】-------------------西瓜,苹果,李子,芝麻 actions 动作:用户与系统()交互动作(业务操作): 包含多个数据操作(改变状态 mutation) actions 的颗粒度大于 mutations, mutations是用来改变状态的,actions除了改变状态

(旺财记账项目)Vue 全局数据管理(下)之Vuex

半世苍凉 提交于 2020-02-27 14:01:47
1. Vuex 就是一个数据读写工具 2. 引用了之后就可以读 3. 大概使用方法 const store = new Vuex.Store({ state: { // data,也就是数据 count: 0 }, mutations: { increment(state, n: number) { // methods,也就是对数据的改动 state.count += n } } }) console.log(store.state.count) // 0 // store.mutations.increment(store.state),这个封装成了commit store.commit('increment',10) // +1 commit 就是调用api // 函数名叫type, 参数叫payload console.log(store.state.count) // 1 export default store; 4. 单一状态树的意思 就是一个对象,应用层级状态就是所有组件的数据 5. Vue.use(Vuex)做了一些什么 把 store 绑到 Vue.prototype.$store上,也就是初始化的时候 Vue.prototype.$store = store 6. Vuex,在.vue 文件中实现+1 的两种方法 方法一 <button @click =

vue-cli3.0搭建项目

别来无恙 提交于 2020-02-26 20:49:04
一、介绍 Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。有三个组件: CLI : @vue/cli 全局安装的 npm 包,提供了终端里的vue命令(如:vue create 、vue serve 、vue ui 等命令) CLI 服务 : @vue/cli-service 是一个开发环境依赖。构建于 webpack 和 webpack-dev-server 之上(提供 如: serve 、 build 和 inspect 命令) CLI 插件 :给Vue 项目提供可选功能的 npm 包 (如: Babel/TypeScript 转译、ESLint 集成、unit和 e2e测试 等) 二、安装 1、全局安装过旧版本的 vue-cli (1.x 或 2.x)要先卸载它,否则跳过此步: 1 npm uninstall vue-cli -g // 或 yarn global remove vue-cli   2、Vue CLI 3需要 nodeJs ≥ 8.9 (官方推荐 8.11.0)。 下载安装nodeJs, 中文官方 下载地址: http://nodejs.cn/download/ 3、安装@vue/cli(Vue CLI 3的包名称由 vue-cli 改成了 @vue/cli ) 1 cnpm install -g @vue/cli //yarn global

vue 之权限设计

最后都变了- 提交于 2020-02-26 13:14:35
好久没写博客了,最近一直在做vue的权限设计,由于之前没有做过,一开始比较迷茫,找了很多资料,看了不少牛人的博客,慢慢的也理出头绪来了,准备写几篇博客记录遇到的问题以及解决方法。 主要遇到的问题 (1)采用前端控制权限还是后端控制权限(哪种比较好) (2)登陆控制死循环(判断用户有没有登录过,登陆过直接跳到想去的页面,没有登陆过跳到登陆页面) (3)如何动态生成菜单路由(采用elementui NavMenu) (4)页面刷新时由于路由初始化导致动态生成的路由没有了,导致页面不能正常跳转 (5)项目由于是登陆后进入模块页面,点击模块进入菜单页面,如何实现进入不同模块的菜单页面,菜单数据在VUEX中存储 (6)第一次切换模块进入菜单页面,NavMenu高亮有问题 (7)按钮级别的权限如何处理 来源: oschina 链接: https://my.oschina.net/u/2612473/blog/3156363

初中高级的前端开发工程师都需要掌握什么技能!新手必看

不想你离开。 提交于 2020-02-25 22:11:32
近几年,前端技术能力的值钱程度很突出,名列前茅。这正代表了前端技术的当前行情。前端工程师一般分为初级工程师、中级工程师、高级工程师、架构师或技术经理角色。不同级别的web前端工程师都应该掌握哪些知识呢 初级前端工程师: 能熟练使用html、css、js 主要工作还是搭建静态页面,主要工作可能是给一些工作做企业官网居多(个人猜测)。进阶的知识的话就是响应式这一块了,一套代码能适配pc+手机是初级前端工程师的进阶。 专门建立的学习Q-q-u-n ⑦③①-⑦⑦①-②①① 分享学习方法和需要注意的小细节,不停更新最新的教程和学习技巧(从零基础开始到WEB前端项目实战教程,学习工具,全栈开发学习路线以及规划) 中级前端工程师: 作为一名中级前端工程师的话,除了上面的以外,还需要会使用一些框架之类的东西,像bootstrap、jquery之类的。进阶的知识应该是ajax这一块了,当然ajax并不难,了解怎么与后台交互是学习ajax的关键点。 主抓基础,避免盲目,花了太多时间学习那些不是特别需要的东西上。前端领域知识点很多,值得学的东西也很多,聪明的人懂得花时间学习成体系的知识并且研究得足够深入,而不是盲目的看到别人用什么框架就去学什么。只停留在实践运用的阶段,到头来框架们都一个一个被淘汰,你仍在原地踏步。 高级前端工程师: 想成为高级前端工程师?首先要学习的就是前端工程化

web前端开发工程师的三种级别,技术决定你能拿5K,还是15K,还是25K

自作多情 提交于 2020-02-25 16:18:23
随着信息技术不断发展,前端技术的发展也经历了不同的阶段。前端概念随着移动智能手机的普及被正式提出,混合APP开始被广泛开发。近年来,由于前端技术开始实现工程化,一些企业前端开发任务逐渐向后端拓展,逻辑思维能力也逐渐成为前端开发人员必备的能力。从2018年开始,用户体验感要求不断提高,小程序作为一种不用下载就可以使用的应用颇受用户和开发者欢迎。 前端工作还不仅仅只是网页的制作,还有微网站、APP的制作,游戏制作,例如可以将你开发的Web页面直接打包成手机使用的APP应用,游戏的互动界面更是以前端开发技术为主。大规模的公司把这些分得很细, 前端到底是个啥:前端其实是个很大的范畴。简单点说,针对浏览器的开发,浏览器呈现出来的页面就是前端。它的实质是前端代码在浏览器端被编译、运行、渲染。前端代码主要由三个部分构成:HTML(超文本标记语言)、CSS(级联样式表)、JavaScript 。web前端开发工程师的三种级别,一般分为初级工程师、中级工程师、高级工程师。 初级前端工程师:能熟练使用html、css、js 主要工作还是搭建静态页面。进阶的知识的话就是响应式这一块了,一套代码能适配pc+手机是初级前端工程师的进阶, 中级前端工程师:作为一名中级前端工程师的话,除了上面的以外,还需要会使用一些框架之类的东西,像bootstrap、jquery之类的。进阶的知识应该是ajax这一块了