Como posso buscar parâmetros de consulta no Vue.js?
Por exemplo http://somesite.com?test=yay
.
Não consegue encontrar uma maneira de buscar ou preciso usar JS puro ou alguma biblioteca para isso?
Como posso buscar parâmetros de consulta no Vue.js?
Por exemplo http://somesite.com?test=yay
.
Não consegue encontrar uma maneira de buscar ou preciso usar JS puro ou alguma biblioteca para isso?
Respostas:
De acordo com os documentos do objeto de rota , você tem acesso a um
$route
objeto de seus componentes, que expõem o que você precisa. Nesse casofonte
vue-router
isso seria de fato uma duplicata, pois ele precisará usar métodos JS padrão.vue-router
tag e a adicionei.return next({ name: 'login', query:{param1: "foo" }, });
não funciona. dentro do componente de login, o suporteparam1
é indefinido.Sem vue-route, divida o URL
Outra solução https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/search :
fonte
location.href
se dividiria quando hálocation.search
prontamente disponível? developer.mozilla.org/pt-BR/docs/Web/API/… Por exemplo,var querypairs = window.location.search.substr(1).split('&');
dividir os pares nome-valor da consulta por '=' nem sempre funcionará, pois você também pode passar parâmetros de consulta nomeados sem valor; Por exemplo,?par1=15&par2
seu código agora geraria uma exceção no par2, pois a divisão por '=' resultará em tmp com apenas 1 elemento.undefined
agetVars['par2']
.Resposta mais detalhada para ajudar os novatos do VueJS:
E o próprio código:
fonte
<script src="https://unpkg.com/vue-router"></script>
new Vue({ router, ... })
não é uma sintaxe válida.Outra maneira (supondo que você esteja usando
vue-router
) é mapear o parâmetro de consulta para um suporte no seu roteador. Então você pode tratá-lo como qualquer outro acessório no seu código de componente. Por exemplo, adicione esta rota;Então, no seu componente, você pode adicionar o suporte normalmente;
Em seguida, ele estará disponível
this.foo
e você poderá fazer o que quiser com ele (como definir um inspetor etc.)fonte
Nesta data, a maneira correta de acordo com os documentos de roteamento dinâmico é:
ao invés de
fonte
query
para obter as consultas do URL. De docs: Além $ route.params, o objeto rota $ também expõe outras informações úteis, como $ route.query (se houver uma consulta no URL)url:
www.example.com?name=john&lastName=doe
Nota: Em
beforeRouteEnter
função não podemos acessar as propriedades do componente como:this.propertyName
.que por isso que tenho passar ovm
paranext
function.It é a maneira recommented ao acesso vue instance.Actually ovm
que significa, por exemplo, vuefonte
Se o seu URL for algo parecido com isto:
Onde '123' é um parâmetro chamado 'id' (url como / something /: id), tente com:
fonte
Você pode obter usando esta função.
fonte
Se o seu servidor usa php, você pode fazer o seguinte:
Apenas funciona.
fonte