Dieses Mal werde ich Ihnen vorstellen, was der Vue2 Family Bucket ist und wie man ihn verwendet. Was ist der Vue2 Family Bucket? Was sind die Vorsichtsmaßnahmen bei der Verwendung? Hier sind konkrete Fälle, schauen wir sie uns gemeinsam an.
Es wird gesagt, dass Vue2 einfach und leicht zu starten ist, aber Sie werden es wissen, nachdem Sie es selbst ausprobiert haben. Neben der ES6-Syntax und der Webpack-Konfiguration, die Ihnen das Gefühl geben, nicht vertraut zu sein, ist die Änderung wichtig Früher konnte man nur globale Variablen verwenden, um das DOM zu ändern, also müssen wir uns auf die Daten selbst konzentrieren. Die offizielle Dokumentation von Vue ist ziemlich gut und reicht von flach bis tief, aber wenn Sie Vue-Cli zum Erstellen eines Projekts verwenden, stellen Sie fest, dass die offizielle Dokumentation immer noch nicht ausreicht. Sie müssen auf Open-Source-Projekte auf Git verweisen und lernen es6. Und die Familien-Buckets von vue (vue-cli, vue-router, vue-resource, vuex) müssen noch installiert werden.
1.vue-cli
Dieses Build-Tool reduziert die Schwierigkeit bei der Verwendung von Webpack erheblich, unterstützt Hot-Updates und unterstützt den Webpack-Dev-Server, was dem Starten einer Anfrage entspricht Server, sodass Sie eine Testumgebung einrichten und sich nur auf die Entwicklung konzentrieren können.
# 全局安装 vue-cli $ npm install --global vue-cli # 创建一个基于 webpack 模板的新项目 $ vue init webpack my-project # 安装依赖,走你 $ cd my-project $ npm install $ npm run dev
Der Mechanismus des Hot-Updates besteht darin, Dateiänderungen zu erkennen und Websocket zu verwenden, um den Client zu benachrichtigen, entsprechende Aktualisierungen vorzunehmen. Weitere Informationen finden Sie unter: [Webpack] – Modul-Hot-Replacement
2.vue-router
Vue-Routing ist immer noch sehr praktisch, viel praktischer als ag1. Diese Bequemlichkeit spiegelt sich in drei Aspekten wider:
1 ist die Entsprechung zwischen Routing und Seiten (Komponenten):
import Vue from 'vue'import Router from 'vue-router'import Home from '@/components/Home'import Chat from '@/components/Chat'import Firends from '@/components/Firends'import Logon from '@/components/Logon'Vue.use(Router) let router=new Router({ routes: [ { path: '/home', name: 'Home', component: Home }, { path: '/', redirect: '/home' },//重定向 { path: '/chat', name: 'Chat', component: Chat }, { path: '/firends', name: 'Firends', component: Firends }, { path: '/logon', name: 'Logon', component: Logon } ] });
So denken normale Menschen, und ag1 muss auch Controller (ein solches Konzept gibt es in Vue nicht, sondern konzentriert sich nur auf die Komponente), was die Verwendung erleichtert. Im MVC-Modus müssen Sie auf die Aktion unter dem Controller verweisen. Wenn viele Navigationskategorien vorhanden sind, ist die entsprechende Strategie verschachteltes Routing.
2 kann spezifisch für Elemente sein:<router-link>首页</router-link>Das Zuhause (ohne Berücksichtigung der Groß-/Kleinschreibung) danach ist der oben definierte Routenname. Das ist sehr praktisch. Routing ähnlich wie Asp.net MVC kann den Pfad nach Namen rendern, ohne dass der Pfad ständig eingegeben werden muss. 3 sind Event-Interceptions: Wenn wir überprüfen möchten, ist es am besten, dies zu überprüfen, bevor der Benutzer die Seite erreicht:
router.beforeEach((to, from, next) => { //todo 以后增加不需要验证的地址判断 if(to.path!=="/logon"&&!store.state.userInfo.Account){ next({ path: '/logon' }) return; }else{ next(); } })Zum Beispiel in beforeEach zur Bearbeitung. Es hat auch viele Funktionen, daher werde ich sie nicht alle auflisten: http://router.vuejs.org/zh-cn/3. Verwenden Sie Komponenten in Komponenten Um zu sehen, dass ich mehrere mobile UI-Bibliotheken verwendet habe, war ich zunächst überrascht, dass es keine Fußzeilenkomponente gab. Jetzt verstehe ich, dass die Benutzeroberfläche eines Drittanbieters nicht erforderlich ist, um die Fußzeile zu kapseln um es zu kapseln (weil es auf Routing basiert). Daher ist die Navigation wahrscheinlich die erste Komponente, die Sie selbst schreiben müssen. Zum Beispiel ist eine Footer.vue definiert
首页 统计 更多<script><p style="text-align: left;">export default {<br/>name: 'VFooter'<br/>}<br/>< ;/ script><br/>Nur in App.Vue müssen Sie importieren <p style="text-align: left;"><pre class="brush:php;toolbar:false">import VFooter from './VFooter' export default { name: 'app', data () {return { msg: 'this is home'} },components:{VFooter}} und dann können Sie es in App.Vue verwenden <p style="text-align: left;"><pre class="brush:php;toolbar:false"><VFooter>Wenn Sie möchten Um sich für die globale Situation zu registrieren, führen Sie zunächst <p style="text-align: left;"><pre class="brush:php;toolbar:false">import Footer from './components/VFooter'//Vue.component('VFooter', Footer)//写在构造函数之前 in main.js ein. In diesem Schritt können Sie problemlos Ihre eigene Seite zusammenstellen. Wenn Sie der Seite einen Gleiteffekt hinzufügen müssen, können Sie einen Übergang hinzufügen (in app.vue): <p style="text-align: left;"><pre class="brush:php;toolbar:false"> <transition name="slide-in" mode="out-in"> <router-view> <pre class="brush:php;toolbar:false">.slide-out-enter-active, .slide-out-leave-active, .slide-in-enter-active, .slide-in-leave-active { will-change: transform; transition: all 400ms; position: absolute; }.slide-out-enter { opacity: 0; transform: translateX(-100%); }.slide-out-leave-active { opacity: 0; transform: translateX(100%); }.slide-in-enter { opacity: 0; transform: translateX(100%); }.slide-in-leave-active { opacity: 0; transform: translateX(-100%);Wie wechselt man nach links und rechts?<p style="text-align: left;"> 4.vue-resource <h2 style="text-align: left;">Die Seite ist fertig und Sie müssen in der Lage sein, Anfragen zu senden. <p style="text-align: left;">https://<a href="http://www.php.cn/wiki/373.html" target="_blank">github.com/pagekit/vue-resource Wenn das Frontend die Schnittstelle nicht selbst schreibt, besteht das erste Problem darin, wie der Proxy eingerichtet wird, der sich in der ProxyTable unten befindet config/index.js. <pre class="brush:php;toolbar:false"> proxyTable: { '/api': { target: 'http://11.111.249.12:11', changeOrigin: true, pathRewrite: { '^/api': '' } },Domänenübergreifende Einstellungen können nicht ohne Änderung von Origin erfolgen. Beachten Sie auch das letzte '^/api': ''. Achten Sie darauf, ob das von Ihnen gewählte „/api“ Teil des ursprünglichen Pfades ist, sonst kann es leicht zu Fehlern kommen. <p style="text-align: left;">Dann gibt es noch einen weiteren Teil, der den Anforderungsheader (main.js) festlegt: <p style="text-align: left;"><pre class="brush:php;toolbar:false">import VueResource from 'vue-resource'Vue.use(VueResource); Vue.http.interceptors.push(function(request, next) {// modify method //request.method = 'POST'; // modify headers request.headers.set('token',“token”);// continue to next interceptor next(); });5.vuex<h2 style="text-align: left;">Das, was mich am meisten verwirrt hat Der Anfang in Family Bucket war This vuex. Was zum Teufel ist das, warum brauchen Sie das? Ich habe React noch nie gespielt und weiß nicht, was State Management ist. Wenn Sie eine globale Variable verwenden möchten, stellen Sie fest, dass alle vorherigen Methoden nicht funktionieren. Legen Sie beispielsweise einen Anmeldestatus <p style="text-align: left;"><pre class="brush:php;toolbar:false">let login=(name,pwd,success,fail)=>}).then(res=> fest und zeigen Sie ihn dann auf der Startseite an: <p style="text-align: left;"><pre class="brush:php;toolbar:false"><p @click="toggle">{{hasLogin}}<pre class="brush:php;toolbar:false">data () { return { hasLogin:window.hasLogin } }, methods:{ toggle(){ window.hasLogin=!window.hasLogin; console.log("clicked",window.hasLogin) } }, Sie stellen fest, dass nach der Anmeldung zwar „true“ angezeigt wird, dies jedoch nicht der Fall ist wechselt nicht zu „falsch“, egal wie Sie darauf klicken. <p style="text-align: left;"><p style="text-align: left;"><img src="/static/imghwm/default1.png" data-src="https://images2015.cnblogs.com/blog/417688/201705/417688-20170516150745635-607123129.png?x-oss-process=image/resize,p_40" class="lazy" alt="" style="max-width:90%" style="max-width:90%"/><p style="text-align: left;">需要再赋值一次:<pre class="brush:php;toolbar:false">this.hasLogin=window.hasLogin;<p style="text-align: left;">为什么呢?因为你自己定义的变量,根本不属于vue的model。也就是没有处理过geter和seter,虽然变量的值是变化了,但仍然无法改变界面上的状态。所以你需要一个状态管理,按照一定的机制把你的变量变换成vue内部的模型。这个东西就是vuex。因为约定比较多,略显复杂点,但是耐心看一下还是很容易接受的。它主要分四个部分,state,getters,mutations,actions。先定义一个user.js如下:<p style="text-align: left;">state就是我们放共享变量的地方。比如下面的userInfo.<pre class="brush:php;toolbar:false">import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); const userStore=new Vuex.Store({ state:{ userInfo:{ userName:"" } }, getters:{ getUserInfo(state){ return state.userInfo; } }, mutations:{ setUserInfo(state,userInfo){ state.userInfo=userInfo; } }, actions:{ setUserInfo({commit}){ commit('setUserInfo'); } } }) export default userStore;<p style="text-align: left;">而getters顾名思义就是获取接口,mutations(突变)这个词有点唬人,其实就是setters嘛。里面的方法自带state参数。而actions就是mutations的异步方法。然后再main.js中引用一下:<pre class="brush:php;toolbar:false">import store from './store/user';//... new Vue({ el: '#app', router, store, template: '<App/>', components: { App } })<p style="text-align: left;">然后我们在设置或获取的时候就可以使用指定的方法:<pre class="brush:php;toolbar:false">import store from '@/store/user'; //... store.commit('setUserInfo',user)<p style="text-align: left;"> 可以直接通过store.state获取变量,也可以通过getters接口:<pre class="brush:php;toolbar:false"> computed:{ ...mapGetters({username:'getUserName'}) },<p style="text-align: left;">这三个点是es6中的扩展<a href="http://www.php.cn/wiki/119.html" target="_blank">运算符。将一个数组转为用逗号分隔的参数序列。<p style="text-align: left;">当然这些状态刷新之后就没有了,如果想要暂存下来,可以放到sessionStorage中:<pre class="brush:php;toolbar:false">if (window.sessionStorage.user) { var json=JSON.parse(window.sessionStorage.user); store.commit('setSessionUser',json)}<p style="text-align: left;">当然要在muations中放进去<pre class="brush:php;toolbar:false"> ==<p style="text-align: left;">官方文档: https://vuex.vuejs.org/zh-cn/<p>相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!<p>推荐阅读:<p style="text-align: left;"><a href="http://www.php.cn/js-tutorial-388790.html" target="_blank">vue的自定义动态组件使用详解<br/><p style="text-align: left;"><a href="http://www.php.cn/js-tutorial-388788.html" target="_blank">protobuf.js 与 Long.js的使用详解<br/><p style="text-align: left;"><a href="http://www.php.cn/js-tutorial-388784.html" target="_blank">让JS自动匹配出proto Js的方法<br/></script>
Das obige ist der detaillierte Inhalt vonWas ist der vue2 Family Bucket und wie wird er verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Zu den Hauptanwendungen von JavaScript in der Webentwicklung gehören die Interaktion der Clients, die Formüberprüfung und die asynchrone Kommunikation. 1) Dynamisches Inhaltsaktualisierung und Benutzerinteraktion durch DOM -Operationen; 2) Die Kundenüberprüfung erfolgt vor dem Einreichung von Daten, um die Benutzererfahrung zu verbessern. 3) Die Aktualisierung der Kommunikation mit dem Server wird durch AJAX -Technologie erreicht.

Es ist für Entwickler wichtig, zu verstehen, wie die JavaScript -Engine intern funktioniert, da sie effizientere Code schreibt und Leistungs Engpässe und Optimierungsstrategien verstehen kann. 1) Der Workflow der Engine umfasst drei Phasen: Parsen, Kompilieren und Ausführung; 2) Während des Ausführungsprozesses führt die Engine dynamische Optimierung durch, wie z. B. Inline -Cache und versteckte Klassen. 3) Zu Best Practices gehören die Vermeidung globaler Variablen, die Optimierung von Schleifen, die Verwendung von const und lass und die Vermeidung übermäßiger Verwendung von Schließungen.

Python eignet sich besser für Anfänger mit einer reibungslosen Lernkurve und einer kurzen Syntax. JavaScript ist für die Front-End-Entwicklung mit einer steilen Lernkurve und einer flexiblen Syntax geeignet. 1. Python-Syntax ist intuitiv und für die Entwicklung von Datenwissenschaften und Back-End-Entwicklung geeignet. 2. JavaScript ist flexibel und in Front-End- und serverseitiger Programmierung weit verbreitet.

Python und JavaScript haben ihre eigenen Vor- und Nachteile in Bezug auf Gemeinschaft, Bibliotheken und Ressourcen. 1) Die Python-Community ist freundlich und für Anfänger geeignet, aber die Front-End-Entwicklungsressourcen sind nicht so reich wie JavaScript. 2) Python ist leistungsstark in Bibliotheken für Datenwissenschaft und maschinelles Lernen, während JavaScript in Bibliotheken und Front-End-Entwicklungsbibliotheken und Frameworks besser ist. 3) Beide haben reichhaltige Lernressourcen, aber Python eignet sich zum Beginn der offiziellen Dokumente, während JavaScript mit Mdnwebdocs besser ist. Die Wahl sollte auf Projektbedürfnissen und persönlichen Interessen beruhen.

Die Verschiebung von C/C zu JavaScript erfordert die Anpassung an dynamische Typisierung, Müllsammlung und asynchrone Programmierung. 1) C/C ist eine statisch typisierte Sprache, die eine manuelle Speicherverwaltung erfordert, während JavaScript dynamisch eingegeben und die Müllsammlung automatisch verarbeitet wird. 2) C/C muss in den Maschinencode kompiliert werden, während JavaScript eine interpretierte Sprache ist. 3) JavaScript führt Konzepte wie Verschlüsse, Prototypketten und Versprechen ein, die die Flexibilität und asynchrone Programmierfunktionen verbessern.

Unterschiedliche JavaScript -Motoren haben unterschiedliche Auswirkungen beim Analysieren und Ausführen von JavaScript -Code, da sich die Implementierungsprinzipien und Optimierungsstrategien jeder Engine unterscheiden. 1. Lexikalanalyse: Quellcode in die lexikalische Einheit umwandeln. 2. Grammatikanalyse: Erzeugen Sie einen abstrakten Syntaxbaum. 3. Optimierung und Kompilierung: Generieren Sie den Maschinencode über den JIT -Compiler. 4. Führen Sie aus: Führen Sie den Maschinencode aus. V8 Engine optimiert durch sofortige Kompilierung und versteckte Klasse.

Zu den Anwendungen von JavaScript in der realen Welt gehören die serverseitige Programmierung, die Entwicklung mobiler Anwendungen und das Internet der Dinge. Die serverseitige Programmierung wird über node.js realisiert, die für die hohe gleichzeitige Anfrageverarbeitung geeignet sind. 2. Die Entwicklung der mobilen Anwendungen erfolgt durch reaktnative und unterstützt die plattformübergreifende Bereitstellung. 3.. Wird für die Steuerung von IoT-Geräten über die Johnny-Five-Bibliothek verwendet, geeignet für Hardware-Interaktion.

Ich habe eine funktionale SaaS-Anwendung mit mehreren Mandanten (eine EdTech-App) mit Ihrem täglichen Tech-Tool erstellt und Sie können dasselbe tun. Was ist eine SaaS-Anwendung mit mehreren Mietern? Mit Multi-Tenant-SaaS-Anwendungen können Sie mehrere Kunden aus einem Sing bedienen


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

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.