Dieses Mal werde ich Ihnen einige Wissenspunkte zum Vue-Interview mitteilen. Freunde, die es brauchen, können darauf achten, es zu lernen.
[Verwandte Empfehlungen: Vue-Interviewfragen (2020)]
1. Einführung in Vue
Vue ist ein Build user Das Framework der Schnittstelle. Es handelt sich um ein leichtes MVV-Framework, das die sogenannte bidirektionale Datenbindung und komponentenbasierte Front-End-Entwicklung implementiert. Es implementiert eine reaktionsfähige Datenbindung und die Kombination von Ansichtskomponenten ist einfach zu bedienen und kompakt.
2. Installieren Sie das vue-devtools-Plugin, um das Debuggen von Vue zu erleichtern. Konfigurieren Sie, ob vue-devtools den Code überprüfen darf, um das Debuggen zu erleichtern. devtools = false;
vue.config.produktionTip=false; Verhindert den Start von Produktionsnachrichten.
3. Allgemeine Befehle.
V-Modell bidirektionale Datenbindung, im Allgemeinen für Formularelemente verwendet.
v-for führt Schleifenoperationen für Arrays oder Objekte aus. Verwenden Sie v-for anstelle von v-repeat zum Binden Zeit einstellen, Verwendung: v-on : time = 'function'
v-show/v-if wird zum Ein- oder Ausblenden von Elementen verwendet, v-show wird durch Anzeige implementiert , v- if wird nach jedem Löschen erstellt
4. Ereignisse und Attribute
v-on:click = "Abkürzung @click=" "
$event-Ereignisobjekt, das ereignisbezogene Informationen wie Ereignisquelle, Zeittyp, Offset usw. enthält.
Ereignis bubbling, Die native js-Methode basiert auf Ereignisobjekten, während die vue-Methode nicht auf Ereignisobjekten basiert. @click.stop verhindert das Bubbling von Ereignissen.
Tastaturereignisse: @keydown.13 oder Keydown. Geben Sie
Ereignismodifikator .stop ruft event.stopPropagation();
v-bind wird für die Attributbindung und Verwendung v -bind :Attribute="" Beispiel v-bind:src="" Abkürzung: src=""
Vorlage
vue .js Mithilfe der HTML-basierten Vorlagensyntax wird die Datenvorlage, die Dom an die Vue-Instanz bindet, {{}} verwendet, um Daten zu binden und auf der Seite anzuzeigen
bidirektionale Bindung V-Modell
Einzelne Bindung {{}} kann Probleme mit Flackern haben, Sie können auch V-Text V-HTML
andere Befehle verwenden v -once Daten werden gebunden, sobald v-pre nicht mutiert und direkt so angezeigt wird, wie sie sind
6. Filter
ist gewohnt Modelldaten filtern. Verarbeiten und filtern Sie Datenpaare vor der Anzeige
Syntax: {{data |.filter (parameter)}}
Integrierte Filter werden nach 2.0 gelöscht. Wenn Sie sie verwenden, können Sie Bibliotheken von Drittanbietern wie lodash data-fns, Datumsformatierung, Accounting.js, Währungsformatierung und Anpassung verwenden
7. Ajax-Anfrage senden
Vue selbst unterstützt das Senden von Ajax-Anfragen nicht, um es zu implementieren Axios verwenden
axios ist ein Promise-basierter HTTP-Anfrage-Client, der zum Senden von Anfragen verwendet wird
Grundlegende Verwendung:
axios.get(url[,options]); 传参方式,url或者params传参 axios.post(url,data,[options]);
Hinweis: Wenn Axios standardmäßig Daten sendet, ist das Datenformat die Anforderungsnutzlast und nicht das von uns verwendete Formulardatenformat. Daher müssen Parameter als Schlüsselwertobjekte übergeben werden
, Parameter können nicht im JSON-Format übergeben werden
Möglichkeiten zum Übergeben von Parametern: Spleißen Sie die Schlüssel-Wert-Paare selbst, verwenden Sie transformrequst, um die Anforderungsdaten vor dem Senden der Anforderung zu konvertieren, oder verwenden Sie qs Modul zum Konvertieren von
axios unterstützt keine domänenübergreifenden Anfragen. Sie können vue-resource verwenden, um domänenübergreifende Anfragen zu senden.
Senden Sie eine domänenübergreifende Anfrage: this.$http.get(url,[options]); this.$http.post(url,[options]);
8.vue-Lebenszyklus
Der Prozess von der Erstellung bis zur Zerstörung einer Vue-Instanz wird zum Lebenszyklus
9. Berechnete Attribute
Berechnete Attribute werden auch zum Speichern von Daten verwendet. Sie haben diese beiden Eigenschaften: Daten können logisch verarbeitet werden und die Daten in den berechneten Attributen können überwacht werden.
10.vue-Instanzeigenschaften und -methoden
Eigenschaften vm.$el vm.$data vm.$options vm.$refs
Methode vm.$mount() vm.$destroy vm.$nextTick(callback) vm.$set(object,key,vlaue) vm.$delete(object,key) vm. $watch(data,callback)
11, benutzerdefinierte Anweisung
benutzerdefinierte globale Anweisung vue.directive (Anweisungs-ID, Definitionsobjekt)
12. Übergang (Animation)
Vue bietet verschiedene Möglichkeiten, den Prozess beim Einfügen von Updates oder einem Dom anzuwenden,
Grundlegende Verwendung: Verwenden Sie die Übergangskomponente und platzieren Sie das zu animierende Element innerhalb der Komponente
Verwenden Sie es zusammen mit der Animationsbibliothek eines Drittanbieters animater.css
<transition enter-active-class="animated fadeInLeft" leave-active-class="animated fadeOutRight"> <p v-show="flag">显示内容</p> </transition>
13 .Component
Komponente ist eine der leistungsstärksten Funktionen von Vue. Komponenten können HTML-Elemente wild bekämpfen, wiederverwendeten Code kapseln und Komponenten sind benutzerdefinierte Elementobjekte.
Definieren Sie die Komponentenmethode. Erstellen Sie zunächst einen Komponentenkonstruktor und verwenden Sie dann den Komponentenkonstruktor, um die Komponente zu erstellen. b>Direkt erstellen
Um auf die Vorlage zu verweisen, wird auf den Komponenteninhalt in der Vorlage verwiesen. Die Daten in der Komponentendatenfunktion unterscheiden sich von den in der gespeicherten Daten Vue-Instanz
componect :is="" Komponente, mehrere Komponenten verwenden denselben Hängepunkt, dynamisches Umschalten,
Keep-Alive-Cache-Komponente , Neuerstellung vermeiden, Effizienzvergleich Hoch
Nutzung
子组件只能在付组件中使用,默认情况下,子组件不能访问付组件数据。每个组件的作用域是独立的。
组件间数据的通信:在调用组件时,绑定想要获取的付组件的数据,在子组件内部,使用props选项来生命获取
的数据,接收来自付组件的数据。例子:props:['msg'] props可以是数组,也可以是对象props:{} 允许配置高级设计比如类型判断
数据的校验,设置默认值 props:{messge:String,age:Number,name:{type:String,rquired:true,default:19,validator:function(){}}},对象做数组的默认值,
对象必须使用函数返回。
组件中的数据有三种形式:data props computed
付组件访问子组件数据方式:
a.在子组件中使用vm.$emit(事件名,数据) 出发一个自定义事件,事件名自定义
b.付组件在使用子组件的地方监听子组件出发事件,并在付组件中定义方法,用来获取数据
单项数据流:
props是单项绑定的,当付组件的属性变化时,将传导给子组件,但是不会反过来,而且不允许子组件直接
修改付组件中的数据
解决方案: a.如果子组件享把他作为局部数据来使用,可以将数据存入另一个变量在操作
b.如果子组件想修改数据并同步付组件,使用.sync 2.3开始支持,或者将付组件数据包装成udixiang,
然后在子组件中修改对象的属性。
非父子组件间通信:
可以通过一个空的vue实例来作为中央事件总线,用他来出发事件或监控事件
var Event = new Vue(); 空对象
Event.$emit(事件名,数据); 发送数据
Event.$on(事件名,data=>{}) 监听接收数据
slot内容分发:
用来获取组件中的元内容,就是组件标签中的内容;
获得指定标签内容可以给标签定义 slot="s1" 获取
14.vue-router 路由
使用vue.js 开发spa 单页面应用,根绝不同url地址,显示不同内容,但实现在统一页面红,称单页面应用。
bower info vue-router cnpm install vue-router -S
<p id="itany"> <p> <!-- 使用router-link组件来定义导航,to属性指定链接url --> <router-link to="/home">主页</router-link> <router-link to="/news">新闻</router-link> </p> <p> <!-- router-view用来显示路由内容 --> <router-view></router-view> </p> </p>
<script> //1.定义组件 var Home={ template:'<h3>我是主页</h3>' } var News={ template:'<h3>我是新闻</h3>' }
//2.配置路由 const routes=[ {path:'/home',component:Home}, {path:'/news/:username/:password'',component:News}, {path:'*',redirect:'/home'} //重定向 ]
//3.创建路由实例 const router=new VueRouter({ routes, //简写,相当于routes:routes // mode:'history', //更改模式 linkActiveClass:'active' //更新活动链接的class类名 });
//4.创建根实例并将路由挂载到Vue实例上 new Vue({ el:'#itany', router //注入路由 }); </script>
知识点: