小编pex*_*a12的帖子

Vue.js处理多个点击事件

我有一个列表,并希望处理列表中每个项目的单击事件

<ul>
  <li 
    v-for="item, index in items" 
    :key="index"
    @click="select(item)"
  >
    {{ item }}
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

而剧本是

...
methods: {
  select(item) {
    console.log('Select', item)
  }
}
Run Code Online (Sandbox Code Playgroud)

当有大约10个项目时,这很有效.但是,当大约有1000个项目时,性能变得非常慢,因为我为1000个项目附加了1000个事件.

解决方案是仅为列表附加一个单击事件并使用 event.target

<ul @click="select($event)">
  <li 
    v-for="item, index in items" 
    :key="index"
  >
    {{ item }}
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

在功能上select,我如何获得item对应的每个项目?

javascript mouseevent vue.js vuejs2

11
推荐指数
1
解决办法
735
查看次数

React.js事件需要2次点击才能执行

我正在通过React.js构建生命游戏,我陷入了一种不舒服的境地:我设置的每个事件都onClick={ event }需要2次点击才能执行.

让我来描述一下: 正如你在下面的代码中看到的,我有2个按钮(一个按钮是将电路板的尺寸改为10×10,另一个是改变间隔的速度).

一切都很好,除了当我点击这两个按钮时,我需要双击才能执行.在第一次点击时,使用Chrome中的React Developer Tool,我可以看到状态包括width, height, speed已更改,但状态board仍保持不变.仅在第二次单击后,board状态才会更改.

任何人都可以解释原因,并告诉我如何解决?谢谢

这是我的代码的一部分

var GameBoard = React.createClass({
    getInitialState: function() {
        return {
             width: 10,
             height: 10,
             board: [],
             speed: 1000,
        };
    },

    // clear the board to the initial state
    clear: function(width, height) {
        this.setState({
            width: width,
            height: height,
        });
        this.setSize();
        clearInterval(this.game);
    },

     // set the size of the board
     setSize: function() {
        var board = [];
        for (var i = 0; i …
Run Code Online (Sandbox Code Playgroud)

javascript onclick reactjs

8
推荐指数
1
解决办法
2432
查看次数

使用binwalk提取所有文件

我有一个文件music.mp3.使用后binwalk,我得到了结果:

pexea12@DESMICE:~/Downloads$ binwalk music.mp3

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
152318        0x252FE         MySQL ISAM compressed data file Version 2
586865        0x8F471         MySQL ISAM compressed data file Version 5
5669358       0x5681EE        MySQL ISAM index file Version 1
5831936       0x58FD00        TIFF image data, little-endian offset of first image directory: 8
5832467       0x58FF13        Unix path: /www.w3.org/1999/02/22-rdf-syntax-ns#">
5832624       0x58FFB0        Unix path: /purl.org/dc/elements/1.1/"
5832748       0x59002C        Unix path: /ns.adobe.com/xap/1.0/mm/"
5832806       0x590066        Unix path: /ns.adobe.com/xap/1.0/sType/ResourceEvent#">
Run Code Online (Sandbox Code Playgroud)

我意识到我的其他文件类型music.mp3如MySQL,TIFF图像.现在我想提取所有这些文件以查看它们的真实内容.

我尝试该命令,binwalk -e music.mp3但它只适用于压缩文件,如.zip.我怎样才能获得所有这些文件?

linux hexdump steganography extract

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

如何在React Native中仅渲染一次组件

我正在使用Expo + React Navigation.

我的React Native应用程序中有许多使用组件的屏幕Map.我不希望每次切换屏幕时都重新呈现此组件.有没有办法将我的组件保存Map到某种存储,以便每次我需要时Map,我的应用程序不必重新呈现它?

javascript reactjs react-native react-navigation

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

在递归算法中获得更快的代码

我正在学习C中的递归.我的问题是:打印80个第一个Fibonacci数(使用递归)

这是本书的代码:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

long long f[100];

long long fib(int n)
{
    if (n<2) return 1;
    if (f[n]>0) return f[n];
    f[n] = fib(n-1)+fib(n-2);       
    return f[n];
}
int main()
{
    int i;
    for (i = 0; i<= 80; i++) printf ("%lld \n", fib(i));
    system ("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

使用此代码,我的程序运行速度非常快,我立即获得80个Fibonacci数字.

但是,当我删除第10行时:

if (f[n] > 0) return f[n];
Run Code Online (Sandbox Code Playgroud)

程序变得非常慢,打印所有80个数字大约需要20秒.有谁能解释为什么?谢谢.

c c++ recursion fibonacci

4
推荐指数
2
解决办法
456
查看次数

有什么方法可以使用 Anaconda 作为与 npm 相同的包管理器吗?

我想要做的是将所有依赖项保存到一个文件中,该文件package.json与我转到另一台计算机时相同,我只需要执行诸如conda install安装项目的所有依赖项之类的操作。这些包不会全局安装,只会安装在项目文件夹中。我知道我可以创建一个虚拟环境,conda但没有包含所有依赖项列表的文件。

我搜索了它,但找不到任何足够的答案:是否有像 npm/package.json 这样的项目文件支持用于 Python 的 pip?

python pip package-managers anaconda conda

3
推荐指数
1
解决办法
851
查看次数

OOP C++ 运算符中的问题

我对 C++ 很陌生。我的问题是写一个关于矩阵的 OOP C++ 程序(创建一个矩阵类并向这个类添加一些方法)这是我的代码:

#include <iostream>
#include <iomanip>

using namespace std;

class Matrix 
{
    private:
        int col, row;
        double *a;
    public:
        Matrix(int col = 1, int row = 1) {
            this->col = col; this->row = row;
        }
        ~Matrix() {
            delete a;
            col = row = 0;
        }
        void insertMatrix() {
            a = new double[this->col * this->row];
            for (int i = 0; i < this->row; i++)
                for (int j = 0; j < this->col; j++) {
                    cout << endl …
Run Code Online (Sandbox Code Playgroud)

c++ oop

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

istream&operator >>的问题

我仍然想知道istream operator >>.在我的函数中istream& operator >> (istream &is, Student& a),我没有使用is但仍然在函数结束时返回它.我仍然得到正确答案cin >> a.有谁能解释为什么?

#include <iostream>

using namespace std;

class Student
{
private:
    int age;
public:
    Student() : age(0){}
    Student (int age1) : age(age1) {}
    void setAge();
    int getAge(){return age;}
    friend istream& operator >> (istream& is, Student& a);
};

istream& operator >> (istream &is, Student& a)
{
    a.setAge();
    return is;
}
void Student::setAge(){
    int age1;
    cout << "input age of the student: "<< endl;
    cin >> age1; …
Run Code Online (Sandbox Code Playgroud)

c++ operators cin istream

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

等待CasperJS中选择的<select>字段的AJAX响应

我想使用CasperJS来抓取这个网站:http://www.agoda.com/hotel-des-arts-saigon-mgallery-collection/hotel/ho-chi-minh-city-vn.html?checkin = 2015- 11-14&洛斯= 2&成人= 2&儿童的= 0&客房= 1

我想改变CasperJS的货币期权.但是,货币期权包含在内<select></select>未嵌入表单的标签中.当我读表时,它会显示旧货币的价格.当货币发生变化时,价格会通过AJAX加载.

我怎么能用CasperJS做什么?

这是我的代码:

var casper = require("casper").create({
    verbose: true,
    logLevel: 'error',
    pageSettings: {
        loadImages: false,
    }
});

   var utils = require('utils');

    var url = 'http://www.agoda.com/hotel-des-arts-saigon-mgallery-collection/hotel/ho-chi-minh-city-vn.html?checkin=2015-11-14&los=4&adults=2&childs=0&rooms=1';

    var names = [];
    var prices = [];
    var currency = [];


    function getName() {
        var rows = document.querySelectorAll('table#room-grid-table tbody tr td:first-child .info-container .room-name span');
        return Array.prototype.map.call(rows, function(e) {
            return e.innerHTML;
        });
    }

    function getPrice() {
        var price = document.querySelectorAll('table#room-grid-table tbody tr td:nth-child(3) …
Run Code Online (Sandbox Code Playgroud)

javascript ajax html-select web-scraping casperjs

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

在C++中删除[]

我在C++中的void delete []有一些问题这是我的代码:

#include<iostream>

int main(){
    int *p = new int[1000];
    for (int i = 1; i <= 1000; ++i)
        p[i] = i;
    delete [] p;
    for (int i = 0; i <= 1000; ++i)
        std::cout << std::endl << p[i];
}
Run Code Online (Sandbox Code Playgroud)

从理论上讲,当我调用delete [] p时,必须删除指针p.但是,在调用delete [] p后,我仍然可以将它打印到屏幕上.谁能解释为什么?

c++ pointers

-1
推荐指数
1
解决办法
87
查看次数