Home > Web Front-end > uni-app > How to solve the problem that the uniapp page jumps with parameters but does not refresh

How to solve the problem that the uniapp page jumps with parameters but does not refresh

PHPz
Release: 2023-04-20 14:07:13
Original
2259 people have browsed it

When using uniapp to develop projects, we often encounter scenarios where we need to pass parameters and jump to the next page. However, when encountering a situation where the page needs to be refreshed, some developers find that the page does not refresh as expected.

The reason for this problem lies in the page jump mechanism of uniapp and the component update mechanism of the page. To address this problem, we need to know the following points:

  1. When the page jumps, the new page will not be completely refreshed, and the life cycle function will only be re-executed

In uniapp, page jump is implemented through methods such as uni.navigateTo. When making a page jump, the new page will not refresh the entire page like in H5, but will only re-execute the life cycle function.

If you don’t know the life cycle function of uniapp, you can check [official document](https://uniapp.dcloud.io/frame?id=life cycle). Simply put, the life cycle functions in uniapp are onLoad, onShow, onReady, onHide and onUnload , these functions respectively represent different states such as page loading, page display, page initial rendering completion, page hiding, and page unloading.

Therefore, if we need to update data after jumping to a new page, we should perform relevant operations in the onShow life cycle function of the new page instead of expecting the page to be able to Auto Refresh.

  1. The mechanism of data update of page components

In uniapp, the components in the page have their own data update mechanism. If we need to refresh a component on the page, we need to manually trigger the this.$forceUpdate() method of the component.

For example, in the onShow life cycle function of the page, we need to update a list component in the page, which can be implemented like this:

onShow() {
   // 获取最新数据
   const newData = getData();
   // 更新组件数据
   this.$refs.list.data = newData;
   // 强制刷新列表
   this.$refs.list.$forceUpdate();
}
Copy after login

It should be noted that if If you need to update other properties of the component (such as styles, etc.), you need to bind variables to the component or use calculated properties.

Through the analysis of the above two points, we can draw a very important conclusion when developing uniapp pages: when making a page jump, you should not expect the page to refresh automatically, but should # in the new page ##onShowData update in life cycle function. At the same time, if you need to refresh a component, you need to manually trigger the $forceUpdate() method of the component.

Overall, uniapp is an excellent cross-platform framework with flexibility and scalability, but during the development process we also need to have an in-depth understanding of its mechanism, especially in data updates and page jumps. aspect, pay more attention to details.

The above is the detailed content of How to solve the problem that the uniapp page jumps with parameters but does not refresh. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template