๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
by vuejsLast 12 weeks ยท 91 commits
3 of 6 standards met
Repository: vuejs/core. Description: ๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web. Stars: 53094, Forks: 9056. Primary language: TypeScript. Languages: TypeScript (96.6%), JavaScript (1.7%), HTML (1.2%), Vue (0.5%), CSS (0%). License: MIT. Homepage: https://vuejs.org/ Latest release: v3.5.29 (4d ago). Open PRs: 100, open issues: 903. Last activity: 8h ago. Community health: 62%. Top contributors: yyx990803, dependabot-preview[bot], renovate[bot], edison1105, sxzz, HcySunYang, pikax, underfin, dependabot[bot], jh-leong and others.
TypeScript
Summary Fixes #14209 Custom element properties may accept multiple types, so when a nullish value (/) or empty string is passed, Vue should not coerce it based on the existing property type. Previously in , the nullish/empty value coercion logic (lines 58-71) would check and coerce accordingly โ even for custom elements: โ for number properties โ for string properties โ for boolean properties This is correct for native HTML elements (which have fixed property types), but wrong for custom elements whose properties can intentionally accept / or change types. The fix skips this type-based coercion for custom elements () and preserves the value as-is, while still removing the attribute when the value is nullish. Test plan [x] Updated existing "value for custom elements" test to expect instead of coerced [x] Added new test covering all three coercion cases: number, boolean, and string props on custom elements [x] All 220 runtime-dom tests pass Summary by CodeRabbit Bug Fixes Custom elements now preserve null and other nullish property values as-is instead of coercing them to default primitives; standard HTML elements retain prior coercion behavior. Tests Added tests confirming nullish handling and attribute reflection for custom element properties, including empty-string and null preservation.
(transition): Like the title said, when you open your dev tools and navigate to the "animation" tab, you can slow down all animations globally. This is very useful for testing animations with a very fine lense, when something just looks off to the naked eye. Anyway, this doesn't work when the component leaves, because it will be removed from the DOM too early. This pull request fixes that. See it for yourself: https://play.vuejs.org/#eNp9VM1u00AQfpWpUVWQEicFejFuRUE9wAEQVOLiy8Ye29tsvKvdsZOoyrszu+u4Kaqa5LDz9803f3lMbo1Jhx6TLMldaaUhcEi9uSk6uTHaEjyCxRoOUFu9gQt2vSg6/y115whIN41CuPZOb2uhHL7zxnwRwRiGBcKNUYIwSAB5e3lzy/CCpO5g1Tf5gjWjzWcG/vxtsYO97sFYdA6oRfYk4oAiiUmLBFao9HYGAlZ6B1upFMRgYQwKyxpq2UhWdE6GZFVvY1ZdA+5ESWoPV8vlxqVw30oHW23XDoQDSRHJtbpX1cznBlkHQtowswoHrl0rdu4q6MQgGy6QVYFpkYhjfcySxGqkxa6OGUOltx0Ipju5cYUa3l+dg7ZwuTyf+UwX7OCQQX3tSpfriFJJF+vzMRr4ofZp6N3CNy+8xlZ9LpUs19fHjvGYzo69G9s8iiE6Bk0Q9oZVNvidCEG8nzo6wuSVHGCYy3rKxXXLiqWpwjkJ2yBNmTm37zj/Tic0wi0YL2ZePMuVL57tUu5or/zzzf9p4NFHGx0jMxArp1VP+MmrFdaUwdLsgrQS5bqxuu+qDIxQOEitkCxWwbqVFbUZz+To3qJsWg5/0vBAmNI+g8bKGMRiiXPJXF0GJXaElvUHTzkd5kGe8/LJAWdBo1AMOGoi86eOMNH0yvGYnSf/HMPf5CkC71CI1kaUkpjR8qTeQBjO4lmLjo5ofKtjF5NZQo7vupZN+uB0x38KAa5ISr0xUqH9acKyFkkWE3kb77Hefg86sr2vKOrLFsv1C/oHt/O6IvnFl4124FWZbMcd8ea7Pz9wx+/JuNFV7xfrFeNvDGMOd+fdvvBUmfaJX2D7LfRAds29u9sRcqfHojxR73kI/kXCf3dfXyn9ie6H9GOI454mh3/Y1M2n Summary by CodeRabbit Refactor Transition timing now uses an animation-frame driven fallback mechanism instead of a single timer, improving precision. Bug Fix Resolves intermittent transition hangs or premature endings so UI animations complete more reliably and feel smoother. โ๏ธ Tip: You can customize this high-level summary in your review settings.