相关疑难解决方法(0)

什么是比赛条件?

编写多线程应用程序时,遇到的最常见问题之一是竞争条件.

我对社区的问题是:

什么是比赛条件?你怎么发现它们?你怎么处理它们?最后,你如何防止它们发生?

concurrency multithreading terminology race-condition

915
推荐指数
11
解决办法
54万
查看次数

传递参考与传递值之间有什么区别?

有什么区别

  1. 通过引用传递的参数
  2. 一个由值传递的参数?

你能给我一些例子吗?

language-agnostic pass-by-reference pass-by-value

539
推荐指数
11
解决办法
65万
查看次数

如何在REDx中使用Immutable.js?

Redux框架使用reducers来更改应用程序状态以响应操作.

关键要求是reducer不能修改现有的状态对象; 它必须产生一个新的对象.

不好的例子:

import {
    ACTIVATE_LOCATION
} from './actions';

export let ui = (state = [], action) => {
    switch (action.type) {
        case ACTIVATE_LOCATION:
            state.activeLocationId = action.id;
            break;
    }

    return state;
};
Run Code Online (Sandbox Code Playgroud)

好例子:

import {
    ACTIVATE_LOCATION
} from './actions';

export let ui = (state = [], action) => {
    switch (action.type) {
        case ACTIVATE_LOCATION:
            state = Object.assign({}, state, {
                activeLocationId: action.id
            });
            break;
    }

    return state;
};
Run Code Online (Sandbox Code Playgroud)

这是Immutable.js的一个很好的用例.

javascript immutable.js redux

50
推荐指数
4
解决办法
4万
查看次数

React - 拥有不可变道具的好处是什么?

在学习了React之后,我仍然认为很多概念很难得到.

其中:道具的不变性.

如果我做对了,那么组件或多或少地等同于面向对象编程中的对象.

在面向对象的编程中,您可以通过method-parameter将数据传递到对象中.在React中,您获得了将数据传递到组件的道具.

如果将参数传递给Java方法,则可以在method-body中更改这些数据.没问题.

在React中不可能,因为道具是不可变的.

我见过的所有文献和内容都提到这些不变性是一个重要的概念.但到目前为止还没有人真正告诉我原因.

有人可以告诉我:拥有不可变的道具有什么好处?

或分别:没有不变性的最大缺点是什么?如果道具是可变的,会发生什么?

最好是一个很好的例子.然后我可能会得到它的机会更大.

javascript functional-programming reactjs

5
推荐指数
1
解决办法
264
查看次数

_.extend vs _.clone 在 lodash

为了在处理 JavaScript 对象时从另一个对象继承一个对象的属性,我经常看到使用_.clonewhere 的意图是创建一个具有另一个对象属性的对象,然后它会被扩展。

为什么我们不能只使用_.extend哪个与扩展对象更相关?

请告诉我两者之间的区别以及为什么我们不能_.extend而不是_.clone哪个是一项昂贵的操作。

javascript lodash

5
推荐指数
1
解决办法
4533
查看次数

Vuex 从状态加载现有表单数据进行编辑

我按照本教程尝试学习 Vue,我已经完成并且它有效,但我正在尝试做出一个我正在努力的改变。

https://savvyapps.com/blog/definitive-guide-building-web-app-vuejs-firebase

因此,有一个“设置”页面,其中包含用户个人资料(他们可以编辑自己的姓名等)。当“设置”/“个人资料”页面加载时,我希望表单加载其现有数据,以便他们可以修改它并按保存。

它当前作为占位符加载:placeholder="userProfile.name"- 我希望它只用实际值填充表单,而不是将其作为占位符。

感觉这样做应该非常简单,但无法让它优雅地工作。

设置.vue

<template>
  <section id="settings">
    <div class="col1">
      <h3>Settings</h3>
      <p>Update your profile</p>

      <transition name="fade">
        <p v-if="showSuccess" class="success">profile updated</p>
      </transition>

      <form @submit.prevent>
        <label for="name">Name</label>
        <input v-model.trim="name" type="text" id="name" />

        <label for="title">Job Title</label>
        <input v-model.trim="title" type="text" id="title" />

        <button @click="updateProfile()" class="button">Update Profile</button>
      </form>
    </div>
  </section>
</template>

<script>
import { mapState } from "vuex";

export default {
  data() {
    return {
      name: "",
      title: "",
      showSuccess: false,
    };
  },
  computed: {
    ...mapState(["userProfile"]),
  },
  methods: {
    updateProfile() …
Run Code Online (Sandbox Code Playgroud)

javascript firebase vue.js vuex

4
推荐指数
1
解决办法
2931
查看次数

如何从数组内的所有对象中删除简单的特定键值对

我正在学习 ES6 和对象,想知道如何删除这个对象数组中的一个键值对:

[
    { "name" : "mark", "height" : "tall", "theId" : "1", "nat" : "uk"},
    { "name" : "ben", "height" : "medium", "theId" : "2", "nat" : "uk"},
    { "name" : "neil", "height" : "small", "theId" : "3", "nat" : "uk" }
]
Run Code Online (Sandbox Code Playgroud)

结果应该是:

[
    { "name" : "mark", "height" : "tall", "nat" : "uk"},
    { "name" : "ben", "height" : "medium", "nat" : "uk"},
    { "name" : "neil", "height" : "small", "nat" : "uk" }
]
Run Code Online (Sandbox Code Playgroud)

我创建了一个 …

javascript arrays object ecmascript-6

2
推荐指数
1
解决办法
6810
查看次数