So implementieren Sie ein Suchfeld in VueJS
So implementieren Sie das Suchfeld in vuejs: 1. Erstellen Sie Komponenten des Logos und der Suchfeldteile. 3. Verwenden Sie „bus.$emit(“change“,index);“ das Ereignis auslösen und ihm Parameter übergeben.
Die Betriebsumgebung dieses Artikels: Windows 7-System, Vue-Version 2.9.6, DELL G3-Computer.
Wie implementiert man das Suchfeld in vuejs?
Implementieren eines einfachen Suchfelds basierend auf Vue.js
Nachdem ich den Code gelesen habe, übe ihn noch einmal selbst: https://github.com/lavyun/ vue-demo -Suche
Das verwendete Hauptwissen ist sehr einfach, einfache Kenntnisse von vuejs2.0 reichen aus. Der Quellcode verwendet .vue zum Erstellen und ES6, Webpack-Paketierung usw. Da ich noch relativ unerfahren bin, werde ich zum Schreiben zunächst eine einfache .js verwenden.
Werfen wir zunächst einen Blick auf den Effekt
Hier gibt es zwei Komponenten, eine Komponente ist der Logo-Teil und die andere ist der Suchfeld-Teil.
html
html ist sehr einfach, es verweist nur auf zwei Komponenten.
<p id="app"> <logo-picture></logo-picture> <search-panel></search-panel> </p> //js还要实例#app var app = new Vue({ el: "#app" })
logo
Zuerst wird das Bild der Suchmaschine angezeigt. Wenn Sie unten ein anderes Suchmaschinensymbol auswählen muss es entsprechend ändern. Also . Wenn Sie auf das umgekehrte Dreieck klicken, wird die Dropdown-Liste angezeigt.
Dann gibt es noch die Dropdown-Box. Wenn Sie einen Übergangseffekt erzielen möchten, müssen Sie ihn in eine
Vue.component('logo-picture',{ template :' \ <p class="main-logo">\ <img :src="items[now].src" @click="toggleFlag"/>\ <span @click="toggleFlag" class="logoList-arrow"> </span>\ <transition-group tag="ul" v-show="flagShow" class="logoList">\ <li v-for="(item,index) in items" :key="index" @click="changeFlag(index)" @mouseover="flagHover(index)" :class="{selectback: index == hoverindex}">\ <img :src="item.src" />\ </li>\ </transition>\ </p>', data: function() { return { items: [{src:'../src/assets/360_logo.png'},{src:'../src/assets/baidu_logo.png'},{src:'../src/assets/sougou_logo.png'}], now: 0, flagShow: false, hoverindex: -1 } }, methods: { //显示隐藏图片列表 toggleFlag: function() { this.flagShow = !this.flagShow; }, //改变搜索引擎 changeFlag: function(index) { this.now = index; this.flagShow = false; bus.$emit("change",index); }, //li hover flagHover: function(index) { this.hoverindex = index; } } });
Dropdown-Feld
Die Eingabe muss in zwei Richtungen gebunden werden, also muss v-model="keyword" gebunden werden, und das Tastaturereignis @keyup muss gebunden werden. Wenn Sie die Eingabetaste drücken, suchen Sie , und wählen Sie die angegebene Option aus, wenn Sie nach unten oder oben gehen.
Das Detailfeld unten ähnelt der Dropdown-Liste
Wenn Sie suchen, verwenden Sie hauptsächlich $http.jsonp und auch die ES6-Syntax? Die Rückgabe scheint Promises .then() zu sein.
Vue.component('search-panel',{ template:'\ <p class="search-input">\ <input v-model="search" @keyup="get($event)" @keydown.enter="searchInput()" @keydown.down="selectDown()" @keydown.up.prevent="selectUp()"/>\ <span @click="clearInput()" class="search-reset">×</span>\ <button @click="searchInput()" class="search-btn">搜一下</button>\ <p class="search-select">\ <transition-group tag="ul" mode="out-in">\ <li v-for="(value,index) in myData" :class="{selectback:index==now}" :key="index" @click="searchThis" @mouseover="selectHover(index)" class="search-select-option search-select-list">\ {{value}}\ </li>\ </transition-group>\ </p>\ </p>', data: function() { return { search: '', myData: [], flag: 0, now: -1, logoData: [ { 'name': "360搜索", searchSrc: "https://www.so.com/s?ie=utf-8&shb=1&src=360sou_newhome&q=" }, { 'name': "百度搜索", searchSrc: "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=" }, { 'name': "搜狗搜索", searchSrc: "https://www.sogou.com/web?query=" } ] } }, methods: { get: function(event) { if(event.keyCode == 38 || event.keyCode == 40){ //向上向下 return ; } this.$http.jsonp('https://sug.so.360.cn/suggest?word=' + this.search + '&encodein=utf-8&encodeout=utf-8').then(function(res) { this.myData = res.data.s; }, function() { }); }, //清除内容 clearInput: function() { this.search = ''; this.get(); }, //搜索 searchInput: function() { alert(this.flag) window.open(this.logoData[this.flag].searchSrc+this.search); }, //搜索的内容 searchThis: function(index) { this.search = this.myData[index]; this.searchInput(); }, //li hover selectHover: function(index) { this.search = this.myData[index]; this.now = index; }, //向下 selectDown: function() { this.now++; if(this.now == this.myData.length) { this.now = 0; } this.search = this.myData[this.now]; }, //向上 selectUp: function() { this.now--; if(this.now == -1) { this.now = this.myData.length - 1; } this.search = this.myData[this.now]; } }, created: function() { //通信 var self = this; bus.$on('change',function(index) { self.flag = index; }) } })
Das Problem der Kommunikation zwischen zwei Bruderkomponenten
var bus = new Vue(); //logo-picture里触发事件,并传递参数 bus.$emit("change",index); //search-panel里监听事件是否发生 var self = this; bus.$on('change',function(index) { self.flag = index; })
Achten Sie auf dieses Problem hier. Dies in $on weist auf Bus hin, daher müssen Sie dies speichern, um auf das Suchfeld zu verweisen.
Empfohlenes Lernen: „vue-Tutorial“
Das obige ist der detaillierte Inhalt vonSo implementieren Sie ein Suchfeld in VueJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Wenn wir das Vue-Framework zum Entwickeln von Front-End-Projekten verwenden, stellen wir bei der Bereitstellung mehrere Umgebungen bereit. Oft sind die von Entwicklungs-, Test- und Online-Umgebungen aufgerufenen Schnittstellendomänen unterschiedlich. Wie können wir die Unterscheidung treffen? Dabei werden Umgebungsvariablen und Muster verwendet.

Ace ist ein in JavaScript geschriebener einbettbarer Code-Editor. Es entspricht der Funktionalität und Leistung nativer Editoren wie Sublime, Vim und TextMate. Es kann problemlos in jede Webseite und JavaScript-Anwendung eingebettet werden. Ace wird als Haupteditor für die Cloud9-IDE gepflegt und ist der Nachfolger des Mozilla Skywriter (Bespin)-Projekts.

Vorwort: Bei der Entwicklung von vue3 bietet reactive eine Methode zur Implementierung reaktionsfähiger Daten. Dies ist eine häufig verwendete API in der täglichen Entwicklung. In diesem Artikel wird der Autor seinen internen Betriebsmechanismus untersuchen.

Vue.js ist heute ein sehr beliebtes Framework in der Front-End-Entwicklung. Da sich Vue.js ständig weiterentwickelt, werden Unit-Tests immer wichtiger. Heute untersuchen wir, wie man Unit-Tests in Vue.js 3 schreibt, und stellen einige Best Practices sowie häufige Probleme und Lösungen vor.

In Vue.js können Entwickler zwei verschiedene Syntaxen zum Erstellen von Benutzeroberflächen verwenden: JSX-Syntax und Vorlagensyntax. Beide Syntaxen haben ihre eigenen Vor- und Nachteile. Lassen Sie uns ihre Unterschiede, Vor- und Nachteile besprechen.

Im eigentlichen Entwicklungsprojektprozess ist es manchmal erforderlich, relativ große Dateien hochzuladen, und dann ist der Upload relativ langsam, sodass das Front-End möglicherweise das Hochladen von Dateiabschnitten erfordert. Dies ist beispielsweise sehr einfach Der Gigabyte-Dateistrom wird in mehrere kleine Dateiströme aufgeteilt, und dann wird die Schnittstelle aufgefordert, die jeweiligen kleinen Dateiströme zu liefern.

Seit der Veröffentlichung von Vue3 ist die Wortkompositions-API in das Blickfeld der Vue-Schreibenden gerückt. Ich glaube, jeder hat aufgrund der Veröffentlichung von @ immer gehört, wie viel besser die Kompositions-API ist als die vorherige Options-API. vue/composition-api-Plug-in, Vue2-Studenten können ebenfalls in den Bus einsteigen. Als Nächstes werden wir hauptsächlich Responsive Ref und Reactive verwenden, um eine eingehende Analyse durchzuführen, wie dieses Plug-In dies erreicht.

Als wir Amap verwendeten, empfahl uns der Beamte viele Fälle und Demos, aber diese Fälle verwendeten alle native Methoden für den Zugriff und stellten keine Demos von Vue oder React bereit. In diesem Artikel haben jedoch viele Leute über den Vue2-Zugriff geschrieben , wir werden einen Blick darauf werfen, wie vue3 die häufig verwendete Amap-API verwendet. Ich hoffe, es wird für alle hilfreich sein!
