Heim > Web-Frontend > js-Tutorial > Hauptteil

So wählen Sie die Komponenten und die Framework-Struktur von Vue aus

php中世界最好的语言
Freigeben: 2018-04-13 16:58:02
Original
1339 Leute haben es durchsucht

Dieses Mal zeige ich Ihnen, wie Sie die Komponenten und die Framework-Struktur von Vue auswählen ein Blick.

vue-Projektinfrastruktur Für ein Vue-Projekt ist meiner Meinung nach die kleinste Teilmenge tatsächlich {vue, vue-router, Komponente}. Als Basisbibliothek stellt uns vue bidirektionale Bindungen und andere Funktionen zur Verfügung. Der Vue-Router verbindet verschiedene „Seiten“ und die Komponenten werden als Stil oder Verhalten ausgegeben. Mit diesen drei Dingen können Sie die einfachste statische SPA-Website implementieren. Natürlich werde ich hier nicht auf das umfassende Konzept des Vue-Familieneimers eingehen, sondern die wichtigsten technischen Punkte einzeln auflisten.

1.vue-cli: Erstellen Sie das Grundgerüst des Vue-Projekts und die Gerüstwerkzeuge

2.sass-loader&node-sass: Ich verwende Sass als Stil-Vorkompilierungstool. Sie können auch selbst wählen, entweder weniger oder Stift

3. postcss: Der Schlüssel zur Realisierung eines

responsiven Layouts

, px=>rem. Dado hat einen auf VW und VH basierenden Layoutplan vorgeschlagen, aber ich nehme vorerst eine abwartende Haltung ein. 4.vuex: Verwalten Sie komplexe Datenflüsse, State-Machine-Tools und spezialisierte Flux

5.vuex-persistedstate: Tool zum Beibehalten des Status in Vuex

6.vue-router: Implementieren Sie den Sprung zwischen „Seiten“ zwischen SPA

7.vue-lazyload: Implementieren Sie das verzögerte Laden von Bildern und optimieren Sie die HTTP-Übertragungsleistung

8.vue-awesome-swiper: Implementierung der Karussellfunktion und Fertigstellung einiger spezieller Schalteffekte

9.Better-Scroll: Implementieren Sie Listen-Scrolling und Scrolling-Probleme zwischen übergeordneten und untergeordneten Komponenten

10.axios: http-Tool zum Anfordern von Daten von der API und zum Implementieren des Interceptors

11.fastclick: Bibliothek zur Lösung von 300 ms Verzögerung

Das Obige ist meiner Meinung nach alles, was ein mittleres bis großes Vue-Projekt verwenden muss. Es gibt auch einige, wie zum Beispiel die jsx-Syntax, die ich zum Implementieren des Bild-Uploads verwendet habe, die so etwas wie babel-jsx erfordert nicht verwendet werden.

Lassen Sie uns die oben genannten Dinge kurz beschreiben. Einige Dinge werden separat ausführlich besprochen:

1.vue-cli:

https://

github.com/vuejs/vue-cli Gerüst-Tools: Wenn wir Vue als unseren Entwicklungstechnologie-Stack wählen, müssen wir mit dem Aufbau eines Verzeichnisses und einer Entwicklungsumgebung für unser Projekt beginnen. Nachdem Sie den Knoten installiert haben, installieren Sie ihn mit den folgenden Befehlen

npm install -g vue-cli Installiert vue-cli in der globalen Umgebung

vue init webpack my-vue-demo erstellt ein Vue-Projekt mit dem Namen my-vue-demo-Dateiname basierend auf der Webpack-Vorlage

Es gibt hier 6 Vorlagen, aber die, die wir am häufigsten verwenden, ist Webpack.

Während dieser Zeit werden Sie einige

Unit-Testing

-Tools wie e2e und das ESLint-Tool zur Überprüfung der Codequalität sehen. Ich denke, es besteht keine Notwendigkeit, sie zu installieren.

Das Bild oben ist ein Vue-Skelett, das in Bezug auf Projekte relativ ausgereift ist, mit Ausnahme der Grundstruktur von vue-cli.

2&3 :sass,postcss

Das Zeitalter des direkten Schreibens von CSS ist vorbei. Prozessoren im vorkompilierten Stil helfen uns, die Produktivität zu steigern und die Effizienz zu verbessern. Sass, Less und Stylus haben jeweils ihre eigenen Vor- und Nachteile und jede hat ihre Anhänger.

Um Sass zu verwenden, müssen Sie Sass-Loader und Node-Sass installieren. Es wird jedoch empfohlen, das Image von Taobao zu verwenden. Wenn der Fehler nach Abschluss der Installation immer noch nicht analysiert werden kann, müssen Sie möglicherweise zu webpack.base.conf.js gehen, um zu sehen, ob der entsprechende Loader eingerichtet wurde.

Allgemeine Funktionen von Postcss

px2rem => kann uns bei der Umrechnung von px in rem-Einheiten helfen. Sie müssen nur die entsprechenden Umrechnungsstandards definieren.

autoprefixer => postcss kann uns auch bei der Handhabung der Kompatibilität helfen.

//vue-loader.conf.js
module.exports = {
 loaders: utils.cssLoaders({
 sourceMap: isProduction
 ? config.build.productionSourceMap
 : config.dev.cssSourceMap,
 extract: isProduction
 }),
 postcss: [
 require('autoprefixer')({
 browsers: ['iOS >= 7', 'Android >= 4.1']
 }),
 require('postcss-px2rem')
 ({ remUnit: 64 })
 ]
}
Nach dem Login kopieren
4,5:vuex,vuex-persistedstate

https://github.com/robinvdvleuten/vuex-persistedstate

Ein mittleres bis großes Vue-Projekt weist auf jeden Fall komplexe Zustände auf, die verwaltet werden müssen. Der einfache Eventbus ist nicht mehr geeignet.

特化的Flux架构,vuex就迎头顶上。简而言之:他就是我们处理无论是用户操作,API返回,URL变更等多重操作的状态管理工具。以后我会具体的说下vuex。

用过vuex的人,会发现一个很痛苦的地方,就是vuex里面的state,只要我们去刷新,它就被释放掉了。有的状态还好,没有了大不了我们可以让用户去重新操作一遍。但是像登录这样的操作,你不可能让用户刷一下就去登一下吧。当然,你会说,我们可以存到local啊,cookie里面啊。是可以!但是这样的话,state就和local里的数据形成了一种松散的关联,state显得十分的脆弱,因为你无法预知你什么时候会少写一个setStore这样的方法。vuex-persistedstate帮我们解决了这样的问题,它帮我们直接把state映射到了本地的缓存环境,我们可以在computed里面用vuex提供的mapState辅助函数,来动态的更新local里面的数据。而不需要持久化的state,我们依旧可以刷新来释放掉。

6.vue-router

当我们使用vue来构建SPA的应用时,就等于说我们完全的分离了前后端。或者通俗点的说:这就是一个纯前端的项目。后端仅仅提供数据,任何的逻辑都在前端实现。既然"脱离"了后端,那么肯定就没有request Mapping这样的同步映射url了。那么,前端就需要router来实现我们前端"页面"的跳转。vue-router就帮我们做了这样的事情,他提供给了路由守卫给我们,我们可以设置全局的,组件内的路由守卫,来实现特定的业务逻辑。 提供过渡动画,来更加生动的展示SPA应用应有的风采等等,这个以后也要具体的来说。

7.vue-lazyload

https://github.com/hilongjw/vue-lazyload

实现图片的懒加载。这是前端性能优化的一个必须面对的问题:图片。懒加载可以减少请求的数量,而且在很直观的视觉上,也有一个良好的过渡。当然,图片我们也是需要去做一些处理的,使用webp格式来减小图片的质量,或者通过oss来对图片作处理。

8.vue-awesome-swiper

https://github.com/surmon-china/vue-awesome-swiper

通过它可以实现基本轮播,横轴的切换,横轴的列表滚动等。

例如我要去实现四个tab切换这样的功能,但是简单的display这样的效果我又觉得不是很满意。那么我们就可以通过swiper来实现,每次tab里面的content都会对应swiper的一个swiper-item。切换的tab,其实就是swiper里面的next page或者before page.

data(){
  return{
    swiperOption: {
  slidesPerView :'auto',
  direction: 'horizontal',
  freeMode : true,
  loop: false,
  spaceBetween: 20,
    },
 }
}
Nach dem Login kopieren
<swiper :options="swiperOption" ref="swiper" v-if="list&& list.length !== 0">
  <swiper-slide v-for="(item,index) in list" :key="index" class="hot-item">
  <router-link :to="{name:&#39;quickCar&#39;,params:{carID:item.CarID}}" class="description_car">
  <img v-lazy="item.Attachments.length !==0 && item.Attachments[0].FilePath"/>
   <span>¥{{item.price}}/日</span>
  </router-link>
  </swiper-slide>
 </swiper>
 <p class="noData" v-else></p>
Nach dem Login kopieren

9.better-scroll

https://github.com/ustbhuangyi/better-scroll

实现纵轴列表的滚动,以及当有嵌套的路由的时候,通过better-scroll来实现的禁止父路由随着子路由的滚动的问题。

better-scroll其实也可以去实现横轴的滚动,但是为什么不使用better-scroll来处理呢?这是因为在better-scroll实现横轴滚动的时候,我们无法在better-scorll的content的内容区域里去下向拉动我们的页面。所以导致的一个Bug就是,在better-scroll横轴滚动的区域里,页面动不了了。

10.axios

基本功能就是通过axios来请求后台接口的数据。并且axios可以配合router更好的实现类似后台的拦截器的功能,例如处理token过期这样问题。因为当token过期的时候,仅仅通过vue-router的router.beforeEach来处理就有点无能为力了。这时候就需要配合后台响应返回的code来进行url的处理。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

ajax实现简单实时验证功能

Vue.js怎样把递归组件构建为树形菜单

Das obige ist der detaillierte Inhalt vonSo wählen Sie die Komponenten und die Framework-Struktur von Vue aus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage