Vue と webpack をある程度理解したら、理解できない学生でも、知っていることを使って簡単な Web アプリを作成できます。最初の 2 つの記事は、vue と webpack の基本的なアプリケーションについてです:
webpack+vue の開始
webpack と vue を使用してコンポーネント化を実現するまず、各コンポーネントを作成します。
//没有后缀名的都是文件夹|-wechat |-dist |-src | |-components //存放vue组件 | | |-tab //存放home.vue中的tab,动态切换的模板 | | | |-tab_1.vue | | | |-tab_2.vue | | |-home.vue //app的首页 | | |-list.vue //点击home中的链接跳转到 | | |-detail.vue //点击list中的链接跳转到 | |-app.vue //主要的vue文件(用于将各个组件的挂载) | |-main.js //主要的js(用于配置路由) |-static //存放静态资源 |-index.html
まずプロジェクトに vue-router をインストールします
npm install vue-router
さまざまなコンポーネントを導入し、ルーティングを設定します:
//main.jsimport Vue from 'vue';import VueRouter from 'vue-router';//引入组件import App from './app.vue';import home from './components/home.vue';import list from './components/list.vue';import detail from './components/detail.vue';Vue.use(VueRouter);var app=Vue.extend(App);var router=new VueRouter();//配置路由router.map({ '/home': { component: home }, '/list': { component: list }, '/detail': { component: detail }});//设置默认情况下打开的页面router.redirect({ '/':'home'});router.start(app,'#app');//暴露路由接口调试window.router = router;
vue-router の導入については、公式ドキュメントの紹介が非常に明確です。アドレス: http:/ /router.vuejs.org/zh -cn/index.html。
ルートを設定した後、一致したコンポーネントをページに正しくレンダリングする必要があります。このとき、
v-transition とtransition-mode の完全サポート スイッチング効果が適切に機能するためには、ルーティング コンポーネントがフラグメント インスタンスであってはなりません。
ルーティング 0.7.2+ でキープアライブをサポート (キープアライブについて)
それで、app.vue に次のように記述します:
<template> <div class="main"> <router-view keep-alive transition="fade" transition-mode='out-in'></router-view> </div></template>
コマンドラインを開いて webpack-dev-server を起動します:
$ webpack-dev-server --inline --hot
At今回、表示されるページは home.vue です
タブ切り替えは非常に頻繁に発生する一般的なエフェクトです。 では、vuejs Woolen clothes でタブ切り替えエフェクトを記述するにはどうすればよいでしょうか。
現在クリックされているタブの番号を使用して、対応する動的コンポーネントを動的に切り替えることは、vuejs が切り替えを実装する方法です。動的コンポーネントの紹介は次のとおりです: https://vuejs.org.cn/guide/components.html#Dynamic Components。したがって、実装コードは次のとおりです:
<template><div class="home"> <div class="bd" style="height: 100%;"> <div class="weui_tab"> <ul class="weui_navbar"> <li class="weui_navbar_item" v-for="tab in tabs" :class="{'weui_bar_item_on':$index===selected}" @click="choose($index)">{{tab.tabName}}</li> </ul> <div class="weui_tab_bd"> <component :is="currentView" transition="fade" transition-mode="out-in"></component> </div> </div> </div> </div></template><script>import tab_1 from './tab/tab_1.vue';import tab_2 from './tab/tab_2.vue';export default{ data(){ return{ tabs:[ {tabName:'Vuejs'}, {tabName:'VueTab'} ], selected:0, currentView:'view_0' } }, components:{ 'view_0':tab_1, 'view_1':tab_2 }, methods:{ choose(index) { this.selected=index; this.currentView='view_'+index; } }}</script>
2 つの動的コンポーネントは tab_1.vue と tab_2.vue です。これら 2 つのモジュールを導入し、コンポーネントの操作を外部のエクスポート デフォルトにエクスポートし、動的コンポーネントをテンプレートにロードし、予約された /*切换动画*/.fade-transition { transition: opacity 0.3s ease;}.fade-enter,.fade-leave { opacity: 0;}
<a v-link="{path:'/a',activeClass:'active'}">test</a>
<div class="bio-slide" v-for="item in items"> <img src="{{item.image}}"></div>
<div class="bio-slide" v-for="item in items"> <img v-bind:src="item.image"></div>
ここでの href は a です。 v- バインド ディレクティブは、要素の href 属性を式 URL の値にバインドします。属性補間 href="{{url}}" を使用しても同じ結果が得られることにお気付きかもしれません。これは正しく、内部的に属性補間は実際に v-bind バインディングに変換されます。
2. v-model の使用
v-model は、、