安装命令“
cnpm install –save isomorphic-fetch es6-promise
由于ie不支持Promise,所以需要安装promise-polyfill;
cnpm install promise-polyfill –save-exact
需要在index.js中引用
import Vue from 'vue'
import Router from 'vue-router'
import Promise from "promise-polyfill";
if(!window.Promise){
window.Promise = Promise;
}
使用
<template>
<div class="hello">
<h1 @click="getUrl">{{ msg }}</h1>
<router-link to="/test/one">testlinks</router-link>
<router-link to="/test/two" exact>testlinks1</router-link>
<router-link to="/user/one">testlinks2</router-link>
<transition :name="tranName">
<router-view></router-view>
</transition>
<ul>
<li v-for='item in items'>{{item.id}}</li>
</ul>
</div>
</template>
<script>
require("es6-promise").polyfill();
require('isomorphic-fetch');
export default {
name: 'HelloWorld',
data () {
return {
msg: 'Welcome to Your Vue.js App',
tranName:'slide-left',
items:[]
}
},
created(){
let _this = this;
fetch('./src/static/data.json').then(function(res){
return res.json();
}).then(function(stories){
console.log(stories)
_this.items = stories;
}).then(function(err){
console.log(err)
})
},
methods:{
getUrl(){
console.log(1)
}
},
beforeRouteUpdate (to, from, next) {
const toDepth = to.path.split('/').length
const fromDepth = from.path.split('/').length
this.tranName = toDepth >= fromDepth ? 'slide-right' : 'slide-left'
next()
},
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
font-weight: normal;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}
a {
color: #42b983;
}
.fade-enter-active, .fade-leave-active {
transition: opacity .5s
}
.fade-enter, .fade-leave-to /* .fade-leave-active in below version 2.1.8 */ {
opacity: 0
}
.slide-left-enter-active, .slide-right-leave-active {
transition: all .5s cubic-bezier(.55,0,.1,1);
}
.slide-left-enter, .slide-right-leave-active {
opacity: 0;
-webkit-transform: translate(30px, 0);
transform: translate(30px, 0);
}
.slide-left-leave-active, .slide-right-enter {
opacity: 0;
-webkit-transform: translate(-30px, 0);
transform: translate(-30px, 0);
}
</style>