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>