Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

为什么给变量赋值长度100的数组,setData会调用100次? #3787

Closed
Pasoul opened this issue Aug 15, 2022 · 3 comments
Closed

为什么给变量赋值长度100的数组,setData会调用100次? #3787

Pasoul opened this issue Aug 15, 2022 · 3 comments

Comments

@Pasoul
Copy link

Pasoul commented Aug 15, 2022

问题描述
基于小程序评测框架项目:https://github.com/hiyuki/mp-framework-benchmark ,为了验证最新版本的uni-app性能,从cli安装最新版本的uni-app,替换到评测框架项目中,发现新增100条数据时,setData会调用100次。

复现步骤
[复现问题的步骤],

  1. 安装小程序评测项目:https://github.com/hiyuki/mp-framework-benchmark

  2. 使用cli创建新的uni-app,替换src目录

  3. 指定App.vue的count和size为true,点击新增可用券100
    image

  4. 查看打印的累计setData次数,发现调用了100+次

预期结果
只给变量赋值一次,应该只调用一次setData
image

实际结果
image

系统信息:

  • uni-app版本 [如使用Vue-cli创建/运行项目,则提供npm run info的运行结果]
uni-app v3.5.3
uni-app cli v2.0.1-35320220729002

Environment Info:

  System:
    OS: macOS 12.2.1
    CPU: (8) x64 Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz
  Binaries:
    Node: 14.16.0 - ~/.nvm/versions/node/v14.16.0/bin/node
    Yarn: 1.22.19 - ~/.nvm/versions/node/v14.16.0/bin/yarn
    npm: 6.14.11 - ~/.nvm/versions/node/v14.16.0/bin/npm
  Browsers:
    Chrome: 100.0.4896.88
    Firefox: 100.0.2
    Safari: 15.3
  npmPackages:
    @dcloudio/types: ^3.0.4 => 3.0.13 
    @dcloudio/uni-app-plus: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-app-plus-nvue:  0.0.1 
    @dcloudio/uni-app-plus-nvue-v8:  0.0.1 
    @dcloudio/uni-automator: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-cli-i18n: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-cli-shared: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-h5: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-helper-json: * => 1.0.13 
    @dcloudio/uni-i18n: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-migration: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-360: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-alipay: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-baidu: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-jd: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-kuaishou: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-lark: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-qq: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-toutiao: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-vue: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-weixin: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-mp-xhs: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-quickapp-native: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-quickapp-webview: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-stacktracey: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-stat: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/uni-template-compiler: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/vue-cli-plugin-hbuilderx: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/vue-cli-plugin-uni: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/vue-cli-plugin-uni-optimize: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/webpack-uni-mp-loader: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @dcloudio/webpack-uni-nvue-loader:  0.0.1 
    @dcloudio/webpack-uni-pages-loader: ^2.0.1-35320220729002 => 2.0.1-35320220729002 
    @hap-toolkit/dsl-vue:  0.6.13 
    @vue/babel-helper-vue-jsx-merge-props:  1.2.1 
    @vue/babel-helper-vue-transform-on:  1.0.2 
    @vue/babel-plugin-jsx:  1.1.1 
    @vue/babel-plugin-transform-vue-jsx:  1.2.1 
    @vue/babel-preset-app:  4.5.19 
    @vue/babel-preset-jsx:  1.3.1 
    @vue/babel-sugar-composition-api-inject-h:  1.3.0 
    @vue/babel-sugar-composition-api-render-instance:  1.3.0 
    @vue/babel-sugar-functional-vue:  1.2.2 
    @vue/babel-sugar-inject-h:  1.2.2 
    @vue/babel-sugar-v-model:  1.3.0 
    @vue/babel-sugar-v-on:  1.3.0 
    @vue/cli-overlay:  4.5.19 
    @vue/cli-plugin-babel: ~4.5.19 => 4.5.19 
    @vue/cli-plugin-router:  4.5.19 
    @vue/cli-plugin-vuex:  4.5.19 
    @vue/cli-service: ~4.5.19 => 4.5.19 
    @vue/cli-shared-utils:  4.5.19 
    @vue/compiler-sfc:  2.7.8 
    @vue/component-compiler-utils:  3.3.0 (3.3.0)
    @vue/devtools-api:  6.0.0-beta.15 
    @vue/preload-webpack-plugin:  1.1.2 
    @vue/shared: ^3.0.0 => 3.2.37 
    @vue/web-component-wrapper:  1.3.0 
    mpvue-page-factory:  1.0.1 
    mpvue-template-compiler:  1.0.13 
    uni-h5-vue:  2.6.10 
    uni-mp-vue:  2.6.10 
    vue: ^2.6.11 => 2.7.8 
    vue-hot-reload-api:  2.3.4 
    vue-loader:  15.10.0 (16.8.3, 15.10.0)
    vue-router:  3.0.1 
    vue-style-loader:  4.1.3 (4.1.3)
    vue-template-compiler: ^2.6.11 => 2.7.8 (2.7.8)
    vue-template-es2015-compiler:  1.9.1 
    vue3:  1.0.0 
    vuex: ^3.2.0 => 3.6.2 (3.6.2)
  npmGlobalPackages:
    @vue/cli: 4.5.19

补充信息
[可选]
[根据你的分析,出现这个问题的原因可能在哪里?]

@StrivingRabbit
Copy link
Collaborator

fixed by b2895a5

@StrivingRabbit
Copy link
Collaborator

临时解决方案:将该提交所涉及到的文件替换至 node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue。重新编译项目

@StrivingRabbit
Copy link
Collaborator

alpha 3.6.7 已修复

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants