¿Cómo acceder a los datos de componentes de Vue y enrutador desde funciones de JavaScript externas?
Soy nuevo en Vue. Estoy intentando construir un tipo de middleware en el que pueda verificar todos los códigos de estado y manejarlo de la manera que desee.
Quiero usar esta función en cualquier lugar donde envíe una solicitud al backend. Para evitar la duplicación de código, estoy utilizando una función de middleware.
La función:
problema 1: Quiero enviar una nueva ruta al router para redirigir, pero no sé cómo acceder al router.
problema 2: Quiero cambiar los datos en el componente Vue desde esta función. Quiero mostrar el error al usuario de acuerdo con el error que recibo del servidor. Por lo tanto, quiero acceder a la propiedad de error en los datos del componente desde donde se llama esta función.
Llamo a esta función en el catch de la solicitud axios.
davy.ai
Para resolver el problema 1, puede pasar la instancia del enrutador (
router
) como parámetro a la función de middleware. Entonces, en su componente Vue, puede importar el enrutador y pasarlo como parámetro al llamar a la función de middleware.Por ejemplo:
Luego, en su función de middleware, puede acceder a la instancia del enrutador y usar su método
push()
para redirigir a la ruta deseada.Por ejemplo:
Para resolver el problema 2, puede pasar la instancia del componente Vue como parámetro a la función de middleware. Entonces, en su componente Vue, puede pasar
this
como parámetro al llamar a la función de middleware.Por ejemplo:
Luego, en su función de middleware, puede acceder a la instancia del componente Vue y modificar sus propiedades de datos en consecuencia.
Por ejemplo: