vuex

vue---day04

无人久伴 提交于 2019-12-30 14:19:39
1. Node.js 1.1 介绍: - Node.js 是一个JavaScript运行环境,实质上是对Chrome V8引擎的封装。 - Node.js 不是一个 JavaScript 框架,不同于Django。Node.js 更不是前端的库,不能与 jQuery、ExtJS 相提并论。 - Node.js 是一个让 JavaScript 运行在服务端的开发平台,它让 JavaScript 成为与PHP、Python、Perl、Ruby 等服务端语言平起平坐的脚本语言。 1.2 安装: 直接去官网下载安装 https://nodejs.org/en/ 1.3 运行测试 开始 -> 运行 -> cmd -> Enter 查看版本:node --version 打开:node 测试:console.log('Hello node') 退出:.exit2. npm 2.1 介绍 任何计算机编程语言都包含了丰富的第三方库,比如Python,pip是python的第三方库管理工具。而npm是JavaScript这么语言的第三方库管理工具。 2.2 检测 装好node.js之后,默认已经安装好了npm包管理工具。可以输入npm命令机械能测试。 2.3 基本命令 - 初始化: npm init --y - 安装: 全局:npm install -g <package> 局部: npm

Vuex Mutation running, but component not updating until manual commit in vue dev tools

百般思念 提交于 2019-12-30 09:00:09
问题 I have a vue component that I can't get to update from a computed property that is populated from a service call. Feed.vue <template> <div class="animated fadeIn"> <h1 v-if="!loading">Stats for {{ feed.name}}</h1> <h2 v-if="loading">loading {{ feedID }}</h2> </div> </template> <script> export default { data: () => { return { feedID: false } }, computed: { feed(){ return this.$store.state.feed.currentFeed }, loading(){ return this.$store.state.feed.status.loading; } }, created: function(){

Restrict vue/vuex reactivity

≡放荡痞女 提交于 2019-12-30 04:48:09
问题 Let's assume we have some array of objects, and these objects never change. For example, that may be search results, received from google maps places api - every result is rather complex object with id, title, address, coordinates, photos and a bunch of other properties and methods. We want to use vue/vuex to show search results on the map. If some new results are pushed to the store, we want to draw their markers on the map. If some result is deleted, we want to remove its marker. But

Vue 组件通信

南笙酒味 提交于 2019-12-29 16:49:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 方法二、$emit/$on 这种方法通过一个空的Vue实例作为中央事件总线(事件中心),用它来触发事件和监听事件,巧妙而轻量地实现了任何组件间的通信,包括父子、兄弟、跨级。当我们的项目比较大时,可以选择更好的状态管理解决方案vuex。 1.具体实现方式: var Event=new Vue(); Event.$emit(事件名,数据); Event.$on(事件名,data => {}); index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="vue.js"></script> </head> <body> <div id="app"> <hello1></hello1> <hello2></hello2> </div> <script> var Event= new Vue(); Vue.component("hello1",{ template:'<h2 v-on:click="startHandle">send</h2>', methods:{ startHandle:function(){ console.info("send"); Event

How to call ajax only when show detail on vue component?

不打扰是莪最后的温柔 提交于 2019-12-29 02:07:29
问题 I have two component. I set and get data by vuex store My first component like this : <template> <ul class="list-group"> <li v-for="item in getOrderList" class="list-group-item"> .... <a href="javascript:" class="toggle-show" aria-expanded="false" data-toggle="collapse" :data-target="'#' + item.id" @click="showDetailOrder(item.id)"> Show <span class="caret"></span> </a> ... <div class="collapse" :id="item.id"> <template v-if="getOrderDetail.id"> <order-collapse/> </template> </div> </li> </ul

Vuex踩坑--数据刷新时丢失

牧云@^-^@ 提交于 2019-12-28 19:46:04
  近期做项目的过程中,使用vuex保存页面公共数据,测试无网情况后又接通网络的情况下,页面进行重新加载。遇到一个小bug——发现在苹果手机IOS系统下,页面刷新重新加载后页面中通过vuex存储并显示的数据丢失了。   下面先介绍一下 产生 这种情况 的原因 : js代码是运行在内存中的,代码运行时的所有变量、函数都是保存在内存中。 刷新页面,以前申请的内存被释放,重新加载脚本代码,变量要重新赋值。 要想刷新后数据不丢失就必须把数据存储在外部,例如:Local Storage、Session Storage、Index DB等。这些都是浏览器提供的API,让你可以将数据存储在硬盘上,做持久化存储。      接着我们介绍两种 解决 上述问题 的方案 : 一、借用客户端本地存储方案localStorage   具体实现描述: 在对state数据进行初始化时,从localStorage中取出对应的值。 在mutations中添加将相应数据存储至localStorage中的操作。   代码如下: state: { // 初始化时从localStorage中取值,没有初始值时置为空数组 pmh: localStorage.getItem('pmh')||[] }, mutations: { SET_PMH: (state, pmh) => { state.pmh = pmh //

Vuex讲解

社会主义新天地 提交于 2019-12-27 10:57:03
Vuex 是什么???? 如果用官方的话说,是以下这段: Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex 也集成到 Vue 的官方调试工具 devtools extension ,提供了诸如零配置的 time-travel 调试、状态快照导入导出等高级调试功能。 但是当我真的入门 Vuex的时候他主要难的地方是 在5个应用中不断的使用; 五个应用分别为:State,Getter,Mutation,Action,Module 这五个应用~ 接下来我就带大家来一起写一次简单的使用方法; 首先就是得下载 Vuex; npm i vuex -S 其次我们要在 vue-cli中创建好自己的项目目录 😁 然后跟我一样 在 src 中创建 一个主🐖目录(容器) 起名叫 store;因为每个 Vuex 应用的核心就是 store (仓库的意思);    vuex 的优势:     1. vuex 的存储状态,响应式的     2. 他是所有组件状态的集合   vuex 的四种状态   state :就是数据仓库;也是我们仓库存放数据的地方   mutations:修改仓库的数据,只能通过 commit 来向上传递   我们组件如果想修改数据,正确的操作流程   1.

vuex的dom更新回调问题

为君一笑 提交于 2019-12-27 10:56:20
https://segmentfault.com/q/1010000007359564 根据vue的响应式原理,多次的数据操作之后进行一次的dom更新,所以可以使用$nextTick在dom更新后做些什么。 但是今天我使用了vuex来管理应用状态,我在组件中发了一个dispatch来触发某个action,action又触发mutations来改变状态,但是在vuex中没有nextTick这个东西,我无法在dom更新后做些什么 在组件写的nextTick也不是在vuex更新状态后触发的,而是在组件自身的dom更新后触发,现在也想不出个办法,求各位大神帮帮忙 this.$store.dispatch("action",{ name: "test", type: "add" }); this.$nextTick(() => { //vuex改变状态后的dom还没有更新就执行到这里了 $(".slimscroll-render").eq(index).slimScroll(); $.fn.fullpage.setAllowScrolling(false); }); 2016年11月02日提问 评论 邀请回答 编辑 默认排序 时间排序 1个回答 答案对人有帮助,有参考价值 1 答案没帮助,是错误的答案,答非所问 我也遇到这个问题了,由于后台请求是异步的,所以$.nextTick

vuex(2)

南楼画角 提交于 2019-12-26 16:19:30
/*--> */ /*--> */ /*--> */ /*--> */ vuex: dispatch commit 区别 dispatch :含有异步操作,例如向后台提交数据,写法: this.$store.dispatch ('action 方法名' ,值) commit :同步操作,写法:this.$store.commit ('mutations 方法名' ,值) 直接修改 state 与 用 dispatch / commit 来修改 state 的差异: 一 . 使用 vuex 修改 state 时,有两种方式: 1 )可以直接使用 this.$store.state. 变量 = xxx ; 2 )this.$store.dispatch (actionType , payload ) 或者: this.$store.commit (commitType , payload ) 二 . 异同点 1)共同点: 能够修改 state里的变量,并且是响应式的(能触发视图更新) 2)不同点: 若将 vue创建 store 的时候传入 strict: true, 开启严格模式,那么任何修改 state的操作,只要不经过 mutation 的函数,vue 就会 throw error : [vuex ] Do not mutate vuex store state outside

Vuex的五个属性

大城市里の小女人 提交于 2019-12-26 16:16:06
Vuex的五个属性 (一)什么是vuex Vuex是一个专为 Vue.js 应用程序开发的状态管理模式 。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化 原理图 (二)vuex的五个核心属性 (1)state:存储基本数据 (2)getter: 从state基本数据派生出的数据,只能同步 (3)mutation:提交更改数据的方法,只能同步 (4)action:请求API方法获取后台数据,然后可以回调函数提交mutaions方法更改state数据状态,可以异步 (5)module:模块化Vuex 个人理解: state可以理解为一个对象或是一个集合,用于存储数据,也可以在其中定义集合对象等 mutation可以理解为set方法,借此用来 获取或修改 存储的数据 getter可以理解为get方法,可以获取返回回来的数据 action用于请求调用api,可以进行异步操作 (三)什么是store 原文网址:https://www.jianshu.com/p/250db2cdc918 Store=State+Mutation 每当 store.state.count 变化的时候, 都会重新求取计算属性,并且触发更新相关联的 DOM。然而,这种模式导致组件依赖全局状态单例。在模块化的构建系统中,在每个需要使用 state 的组件中需要频繁地导入