1,新建項目
打開Visual studio code
打開一個你想要創建項目的文件夾
打開集成終端:查看 –> 集成終端 或者直接按 ctrl+`
如果沒有安裝vue-cli,在終端輸入:
npm install -g vue-cli
全局安裝vue-cli
然后新建項目
vue init webpack projectName
projectName換為你想要的名字。這里我建立的項目名為 ex1
然后一直按確認或輸入y按確認,等待項目初始化,如下圖
項目完成后,運行如下命令
此時,打開你最喜歡的瀏覽器,輸入上圖的地址
你應該能看到下圖所顯示的
2.完成項目
這時,你的項目的目錄結構應該如下圖所示
我們目前只關心目錄src文件下的內容
接下來我們將vue.js官網的樹形視圖例子整合到我們的項目中。
1)在components目錄下新建一個文件夾tree 2) 在新建的tree文件夾下新建一個文件tree.vue 3) tree.vue的代碼如下:(注意每修改一個文件按 ctrl + s 保存)
1 <template> 2 <li> 3 <div 4 class="bold: isFolder" 5 v-on:click="toggle" 6 @dblclick="changeType"> 7 {{ model.name }} 8 <span v-if="isFolder">[{{ open ? '-' : '+' }}]</span> 9 </div> 10 <ul v-show="open" v-if="isFolder"> 11 <tree 12 class="item" 13 v-for="(child, index) in model.children" 14 :key="index" 15 :model="child"> 16 </tree> 17 <li class="add" @click="addChild">+</li> 18 </ul> 19 </li> 20 21 </template> 22 23 <style> 24 body { 25 font-family: Menlo, Consolas, monospace; 26 color: #444; 27 } 28 .item { 29 cursor: pointer; 30 } 31 .bold { 32 font-weight: bold; 33 } 34 ul { 35 padding-left: 1em; 36 line-height: 1.5em; 37 list-style-type: dot; 38 } 39 40 </style> 41 42 43 <script> 44 import Vue from 'vue' 45 export default { 46 name: "tree", 47 props: { 48 model: Object 49 }, 50 data: function () { 51 return { 52 open: false 53 } 54 }, 55 computed: { 56 isFolder: function () { 57 return this.model.children && 58 this.model.children.length 59 } 60 }, 61 methods: { 62 toggle: function() { 63 if (this.isFolder) { 64 this.open = !this.open; 65 } 66 }, 67 changeType: function () { 68 if (!this.isFolder) { 69 Vue.set(this.model, 'children', []) 70 this.addChild() 71 this.open = true 72 } 73 }, 74 addChild: function () { 75 this.model.children.push({ 76 name: 'new stuff' 77 }) 78 } 79 } 80 } 81 </script>
4) app.vue的代碼如下:
1 <template> 2 <div id="app"> 3 <ul> 4 <tree :model="data"></tree> 5 </ul> 6 </div> 7 </template> 8 9 <script> 10 import tree from "./components/tree/tree.vue" 11 12 export default { 13 name: 'App', 14 components:{ 15 tree 16 }, 17 data(){ 18 return{ 19 data:data 20 } 21 } 22 } 23 24 var data = { 25 name: 'My Tree', 26 children: [ 27 { name: 'hello' }, 28 { name: 'wat' }, 29 { 30 name: 'child folder', 31 children: [ 32 { 33 name: 'child folder', 34 children: [ 35 { name: 'hello' }, 36 { name: 'wat' } 37 ] 38 }, 39 { name: 'hello' }, 40 { name: 'wat' }, 41 { 42 name: 'child folder', 43 children: [ 44 { name: 'hello' }, 45 { name: 'wat' } 46 ] 47 } 48 ] 49 } 50 ] 51 } 52 </script> 53 54 <style> 55 56 </style>
如果一切正常,運行結果應該如下圖
全部展開后如下圖:
如果不喜歡將全部代碼放在一個文件里面,可以在tree目錄下新建兩個文件
tree.css tree.html
然后把tree.vue中包含在template里面的代碼剪切進tree.html
,把style里面的但剪切進tree.css 。
然后tree.vue的template和style部分分別變為如下
1 <template src="./tree.html"></template> 2 <style src="./tree.css"></style>