安裝:npm install -g vue-clivue
vue list命令 :查看官方模版列表webpack
初始化項目:vue init webpack 項目名web
安裝依賴:npm installvue-cli
運行:npm run devshell
以DIV從右到作的飛入動畫爲例。
在須要加動畫的組建上設置屬性:transition="動畫名稱"npm
<template> <div v-show="showFlag" transition="move" class="food"> </div> </template>
這裏給要添加動畫的組建設置了transition屬性,而且值等於move,也就是去個名字app
而後在style樣式中分別寫兩個樣式:less
<style lang="less" rel="stylesheet/less"> .food{ // 其餘樣式 ... ... &.move-transition{ transition: all .2s linear; transform: translate3d(0,0,0); } &.move-enter,&.move-leave{ transform: translate3d(100%,0,0); } } </style>
樣式以「動畫名稱-transition」爲名,表示動畫開始的設置,以「enter」「leave」結尾的表示動畫結束的設置。ecmascript
這樣就完成了一個簡單的Vue動畫。動畫
parent組件中有child組件,而且在子組件上設置v-ref屬性:
<template> // child組建 <child v-ref:child></child> </template> <script type="text/ecmascript-6"> export default{ methods: { methodA() { // 調用子組件方法 this.$refs.child.show(); } } }; </script> <style lang="less" rel="stylesheet/less"> </style>
注意:v-ref後面的值是以「:」鏈接的而不是「=」號。「this.$refs.child」就是獲取到子組件。
child子組件內容
<template> <div>我是child組建</div> </template> <script type="text/ecmascript-6"> export default{ methods: { show() { //方法內容 } } }; </script> <style lang="less" rel="stylesheet/less"> </style>
在子組件方法中
this.$dispatch('content.toggle', type);
「ratingtype.select」是自定義事件名,在父組件中能夠監聽該事件,在父組件中定義events屬性處理事件
events: { 'ratingtype.select'(type) { this.selectType = type; }, 'content.toggle'(onlyContent) { this.onlyContent = onlyContent; } }
經過給div設置「v-el:xxx」就如同給div設置一個id屬性,而後能夠經過這個id獲取DIV元素。
<div class="food" v-el:food>
而後在使用$els便可訪問該元素
let food = this.$els.food;
food獲得的就是一個DOM對象
<div @click.stop.prevent="test">test</div>
在切換路由的時候不但願每次切換都從新被渲染一次,能夠在路由出口上添加keep-alive屬性便可
<router-view :user="user" keep-alive></router-view>
使用vue-cli建立的項目使用npm run build命令進行打包編譯成靜態文件。可是可能遇到以下異常:
- building for production...shell.js: internal error Error: ENOENT: no such file or directory, stat 'D:\xxxxxapp\static\*' ... ...
此時,能夠嘗試更新shelljs包的版本,如項目中shelljs當前版本是0.6.0,那麼能夠更新至0.7.4(npm update shelljs@0.7.4)後再次進行build命令
++++++++++本人出售本人出售《Vue.js權威指南》,二手價20元!++++++++++