Repository: traefik/traefik (language: go)

Issue:
Search field malfunction in Traefik Dashboard causes intermittent filtering
### Welcome!

- [x] Yes, I've searched similar issues on [GitHub](https://github.com/traefik/traefik/issues) and didn't find any.
- [x] Yes, I've searched similar issues on the [Traefik community forum](https://community.traefik.io) and didn't find any.

### What did you do?

Steps to reproduce:

1. Configure 2 or more HTTP routers
2. Go to the Traefik dashboard 
3. Fill the search field with a filter, open the HTTP routers tab
4. Go to the HTTP middlewares tab or open a router
5. Return to the routers view 

Now the search field is empty, but the dashboard will alternate between the results of the first filter and the full list of routers.
If you check the requests sent by the network from the dashboard, you will see that it alternates between sending a request with the old filter applied and an unfiltered request.

You can repeat steps 3-5 several times and the dashboard will alternately filter the list with all the previous filters.



### What did you see instead?

The dashboard should only show the results of the latest filter.

### What version of Traefik are you using?

Version:      3.3.2
Codename:     saintnectaire
Go version:   go1.23.4
Built:        2025-01-14T15:52:24Z
OS/Arch:      linux/amd64

### What is your environment & configuration?

```yaml
log:
  level: DEBUG

accesslog: false

providers:
  docker:
    exposedByDefault: false
    network: frontend
    watch: true
  file:
    directory: "/usr/share/traefik-config/dynamic"
    watch: true

entrypoints:
  web:
    address: :80
    http:
      redirections:
        entryPoint:
          to: websecure
          scheme: https
          priority: 1000000
  websecure:
    address: :443
    asDefault: true
    http:
      tls:
        certResolver: letsencrypt

certificatesResolvers:
  letsencrypt:
    acme:
      email: ***@****.**
      storage: /letsencrypt/acme.json
      tlsChallenge:
      httpChallenge:
        # used during the challenge
        entryPoint: web
      dnsChallenge:
        provider: digitalocean

api:
  insecure: false
  dashboard: true
  basePath: /panel/traefik
```

Docker compose config
```yaml
services:
    proxy:
        image: traefik:3.3
        restart: "unless-stopped"
        command: [ "--configFile=/usr/share/traefik-config/traefik.yaml" ]
        env_file:
            - .env_traefik
        ports:
            - "80:80"
            - "443:443"
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock
            - ./config/traefik:/usr/share/traefik-config
            - traefik-letsencrypt:/letsencrypt
        networks:
            - frontend
 networks:
    frontend:
```


### If applicable, please paste the log output in DEBUG level

_No response_


Discussion / hints:
I think the issue is raised here: https://github.com/traefik/traefik/blob/95dd17e0200e5a861e4519675d2f37acfc7b95eb/webui/src/_mixins/Pagination.js#L70C5-L70C18
 
In Vue v3 the lifecycle hook `beforeDestroy` no longer exists, it's now called `beforeUnmount`:  https://vuejs.org/api/options-lifecycle.html#beforeunmount
Hey @DoubleREW,

Thank you for reaching.
Could you create a PR wit the fix, please?

Fix patch:
diff --git a/webui/src/_mixins/Pagination.js b/webui/src/_mixins/Pagination.js
index a090beac2a..4109f1b28d 100644
--- a/webui/src/_mixins/Pagination.js
+++ b/webui/src/_mixins/Pagination.js
@@ -67,7 +67,7 @@ export default function PaginationMixin (opts = {}) {
         this.fetchMore()
       }
     },
-    beforeDestroy () {
+    beforeUnmount () {
       clearInterval(this.pollingInterval)
     }
   }


Test patch: