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

fix(input): 移除非必要的 modelValue 更新 #3080

Closed
wants to merge 1 commit into from

Conversation

eiinu
Copy link
Member

@eiinu eiinu commented May 16, 2024

这个 PR 做了什么? (简要描述所做更改)

这个 PR 是什么类型? (至少选择一个)

  • feat: 新特性提交
  • fix: bug 修复
  • docs: 文档改进
  • style: 组件样式/交互改进
  • type: 类型定义更新
  • perf: 性能、包体积优化
  • refactor: 代码重构、代码风格优化
  • test: 测试用例
  • chore(deps): 依赖升级
  • chore(demo): 演示代码改进
  • chore(locale): 国际化改进
  • chore: 其他改动(是关于什么的改动?)

这个 PR 涉及以下平台:

  • NutUI H5 @nutui/nutui
  • NutUI Taro @nutui/nutui-taro

这个 PR 是否已自测:

Summary by CodeRabbit

  • 新功能

    • 增强了输入框组件的更新逻辑,确保格式化后的值不同于原始值时才触发更新事件。
  • 错误修复

    • 修复了聚焦事件不再触发 update:modelValue 事件的问题。
    • 修复了失焦事件后直接操作值的问题,现在在更新值后触发 update:modelValue 事件。
    • 修复了清除功能不再触发 change 事件的问题。

Copy link

coderabbitai bot commented May 16, 2024

Walkthrough

在这次更新中,主要对input.taro.vue文件中的几个函数进行了优化和调整。具体来说,updateValue函数在发出更新事件前增加了对值变化的检查,onFocusonBlur函数的行为被简化,clear函数不再发出change事件。

Changes

文件路径 变更摘要
src/packages/__VUE/input/input.taro.vue 1. updateValue函数在发出更新事件前检查props.formatter(value)的结果是否不同于原始value
2. onFocus函数不再发出update:modelValue事件。
3. onBlur函数不再直接操作value变量,并在更新值后发出update:modelValue事件。
4. clear函数不再发出change事件。

在代码的世界里,
变更如春风般细腻,
函数优化如花绽放,
事件简化如水流淌。
代码兔子在欢唱,
每个更新都闪亮。


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai generate interesting stats about this repository and render them as a table.
    • @coderabbitai show all the console.log statements in this repository.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (invoked as PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger a review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai help to get help.

Additionally, you can add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.

CodeRabbit Configration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link

codecov bot commented May 16, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 83.98%. Comparing base (87f044d) to head (649fa88).

Additional details and impacted files
@@            Coverage Diff             @@
##               v4    #3080      +/-   ##
==========================================
- Coverage   83.99%   83.98%   -0.02%     
==========================================
  Files         226      226              
  Lines       22939    22939              
  Branches     2476     2478       +2     
==========================================
- Hits        19268    19265       -3     
- Misses       3653     3656       +3     
  Partials       18       18              

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Review Details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits Files that changed from the base of the PR and between 87f044d and 649fa88.
Files selected for processing (1)
  • src/packages/__VUE/input/input.taro.vue (4 hunks)
Additional comments not posted (4)
src/packages/__VUE/input/input.taro.vue (4)

192-196: 优化性能:仅在格式化值与原始值不同时才触发 update:modelValue 事件。


197-197: 优化性能:移除 onFocus 方法中不必要的 update:modelValue 事件触发。


197-197: 优化性能:在 onBlur 方法中更新值后触发 update:modelValue 事件,而不直接操作 value 变量。


197-197: 简化代码:移除 clear 方法中不必要的 change 事件触发。

@eiinu eiinu marked this pull request as draft May 16, 2024 08:27
@eiinu
Copy link
Member Author

eiinu commented May 25, 2024

此 PR 存在无法覆盖到的场景,不能合并,需要重新设计方案。

@eiinu eiinu closed this May 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
1 participant