Comments (2)
Hello @seeniOlabode
Yes, it seems that this is the case.
If you or someone takes a closer look, you will understand why this happens. However, I believe it would be beneficial to include this information in the documentation.
Thank you for your attention.
from docs.
Hello, thank you for logging this.
I have tested this in the Playground and confirmed the unexpected behavior. Here’s a breakdown of what happens:
- Change Unrelated State: An unrelated state change in the parent component triggers its render function.
- Component Re-render: This causes the parent component to re-render, which includes re-evaluating Comp.vue.
- Evaluate CustomRef: The customRef's get() method is called again, returning a new object with the same structure as the previous value.
- Prop Comparison: During re-rendering, Vue compares the new and previous props of the child component.
- Perceived Prop Change: Although the objects are structurally identical, they are different instances. Vue perceives this as a prop change.
- Child Component Re-render: This perceived prop change triggers the child component to re-render and its watchers to react, despite no actual change in the logical state.
- This behavior occurs because the customRef does not trigger updates inside its set() method, leading to reactivity issues when the getter returns a new object instance.
Let me know if this is the case per your deductions.
from docs.
Related Issues (20)
- 搜索功能点了没反应 HOT 2
- Add VNode type as the first argument of `h` HOT 1
- v-model parameters are different in Playground and web,makes it difficult to understand HOT 2
- Website home page nav bar looks weird on Firefox HOT 5
- Docs: unobvious warning in custom-directives HOT 4
- Add documentation for "VNode Lifecycle Events" HOT 2
- Slot -> Scoped Slots ->Fancy List Example:All values use item, and it looks like name="item" could be replaced with name="list-item" (or something better) to distinguish between variables and strings. HOT 1
- Header `\*` markers showing up in render HOT 3
- 便宜机场推荐 :2024 最新好用便宜机场推荐
- Transitions API link opens 404 in vue router v3 docs
- There is an error in 'Creating a Vue Application' using the yarn command line in QuickStart
- ref回调错误
- vue中文版文档刷新页面有js报错 HOT 1
- Class and Style Bindings HOT 1
- Create project with yarn HOT 2
- Is it possible to remove the frame-ancestors setting for the official documentation site (vuejs.org)? To facilitate iframe access! HOT 1
- Update `yarn create` command
- Missing search result for getCurrentInstance HOT 1
- Document create-vue Typescript setup
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from docs.