vue-router-- 根據不一樣的地址找到不一樣的頁面 html
(單頁面應用:無需頻繁的從後臺刷新頁面)vue
1,安裝路由-->導入-->註冊--->實例化-->Vue實例中聲明此實例git
2,路由 map(實例的vue-router配置) router-view (規定路由中的組件在哪顯示)顯示 router-link 跳轉github
:to="" 動態綁定vue-router
根目錄下的applevuex
基於當前路徑的applenpm
tag轉換a爲li標籤 編程
當前路由會添加默認類名:router-link-active
3,路由參數(: 添加完參數後,必須完整的輸入地址)app
4,嵌套路由(chiidren的組件會渲染到父級(Apple)的vue文件的 router-view中)dom
5,命名的路由
6,編程似的導航:
router.push({path: 'apple'})
router.beforEach()每次跳轉前可寫方法進行操做,比方說異步檢查一下用戶信息狀態,符合條件再執行router.push({path: 'apple'})
7,路由重定向
8,路由跳轉動畫
Vuex 狀態管理工具-數據中心維護一些數據通知(某些組件被改變狀態後其餘頁面也會實時更新 登錄 購物車)
安裝vuex
1,npm install vuex --save
2,main.js引入 並註冊vuex
import Vuex from 'vuex'
Vue.use(Vuex);
使用store
第一步,實例化store
let store=new Vuex.store({
state://存放數據{
totalPrice:0
},
mutations:{ //動做
increment(state,price){
state.totalPrice+=price
},
decrement(state,price){
state.totalPrice-=price
}},
actions:{ //只能調用mutations不能調用state
increase(context,price){ //context便是當前的store對象
context.commit('increment',price)
}
}
}); //實例化數據中心
(若是有actions則這樣調用)
actions 和 mutations 的區別是,actions能夠進行異步的請求,mutations進行同步的操做
2,第二步,Vue實例中聲明
3,調用
******** 不一樣塊級的數據放入到不一樣的mudule中的js中 (http://www.jb51.net/article/124618.htm)
http://blog.csdn.net/github_26672553/article/details/53389988
全部的mutations中的函數中都傳入了state參數
放在全局的實例化對象裏 commit 調用 mutation
組件中調用actions this.$store.dispatch('increase',this.price)
報錯:Component template requires a root element, rather than just text.(每一個組件至少有一個包裹的dom元素)
computed屬性 https://www.cnblogs.com/freefish12/p/6046828.html
這是main.js代碼:
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
import goods from './components/goods.vue'
import ratings from './components/ratings.vue'
import seller from './components/seller.vue'
Vue.use(VueRouter)
Vue.config.productionTip = false
/ eslint-disable no-new /
var routes = [
{path: '/goods', components: goods},
{path: '/ratings', components: ratings},
{path: '/seller', components: seller}
]
var router = new VueRouter({
routes
})
new Vue({
el: '#app',
router,
template: '<App/>',
components: { App }
})