Vue Search

Como faz para pegar mais de 1 ou 2 valores no filtro?
filterClients(){ | |
if(this.filterC === '') | |
return this.clientList | |
let vm = this | |
return this.clientList.filter(cliente => { | |
return cliente.name.toLowerCase().indexOf(vm.filterC.toLowerCase()) > -1 | |
}) | |
}, |
https://github.com/TioLee/Vue-Component-Study/blob/master/ClientForm.vue

Salve Brendo!
Tudo bem?
Primeiro uma dica, não precisa criar essa variável "vm", como você está trabalhando com ES6 basta simplesmente fazer "this.", mesmo em uma função de callback.
No caso para filtrar, você quer filtrar por duas ocorrências de pesquisa diferentes? Tipo: nome e email
Ou simplesmente, filtrar a mesma palavra de pesquisa por duas condições diferentes?

E isso mesmo, tipo nome e e-mail
--- Dúvida 2
fica uma bagunça no App.js quando se tem muitos componentes, eu separei o arquivo usei export defualt como no código abaixo só que não está funciona
Segui a documentação https://br.vuejs.org/v2/guide/components-registration.html
obs: estou usando o laravel

Fiz um exemplo de filtro com ES6 para você adaptar ao seu projeto, pode rodar diretamente no console do Browser para ver como fica:
let items = [
{name: 'Carlos', email: '[email protected]'},
{name: 'contato', email: '[email protected]'},
{name: 'conta', email: '[email protected]'},
];
let name = 'Carlos'
let email = '[email protected]'
let filter = items.filter((item) => {
return item.name == name || item.email == email
})
console.log(filter)

Sobre os components, caso esteja ficando muito grande o arquivo app.js, pode criar um arquivo chamado components.js e nele registar os components, o arquivo app.js ficaria assim:
require('./componets');
E no arquivo componets.js fica assim:
Vue.component('bread-crumb', require('./components/global/BreadcrumbComponent'));
Vue.component('nav-bar', require('./components/global/NavBarComponent'));

pode crer obrigado

tive que importar o vue no arquivo components.js
ele não estava reconhecendo o vue

return item.name == name || item.email == email
não tem alguma forma de fazer tipo no mysql %LIKE% ?

Ah sim, verdade. No components.js como usamos o Vue para declarar os components precisa importar ele. Bem lembrado!
----------
Você pode usar o match, e fazer expressões regulares para filtrar: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/String/match

Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!