![Vue.js快速入门](https://wfqqreader-1252317822.image.myqcloud.com/cover/548/31794548/b_31794548.jpg)
上QQ阅读APP看书,第一时间看更新
2.2 实际项目
下面我们看一个实际的例子。这个例子就是SPA的应用:TODO-list,来自于Vue.js的官方。
需求如下:
(1)可以列出代办事项。
(2)可以新增代办事项。
(3)可以把待办事项标记成“已办完”。
该例子的目的是为了让大家对于原生的Vue.js有一个直观的认识,里面的技术细节其实有些复杂,使用了基本的Vue.js知识、Component(组件)、Watcher(监听器)、Computed Properties(计算得到的属性)、Filter(过滤器)等概念。读者暂时不用深究,在第4章Webpack+Vue.js实战中会依次讲解到。
读者只需要对实际的原生项目有所了解即可。
2.2.1 运行整个项目
新建文件index.html,内容如下:
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P24_66856.jpg?sign=1738842293-C13jkTOqGlAnr3Hwj3ymYIGYPpPhXH9M-0-9bea41900639195cc627b01eb5f6d08d)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P25_65569.jpg?sign=1738842293-mNOQRLq78UeoHz6U2MOUI9bzwkbfiDkj-0-583df0672399dc4d567f6adb5b70e0ca)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P26_65344.jpg?sign=1738842293-k5xSrMzsjEQtfuvTYPgUa6LaxYvZrV53-0-790f411abc4028b3f7264e6cae98aecf)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P27_65570.jpg?sign=1738842293-Ng3lNRHlRRrj6pwAE55C8p9QebDAR6CO-0-ee06c42e8c8205a4b2b1e048d4dab03b)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P28_65571.jpg?sign=1738842293-nXNv4FWyoCCwW7n0LtxPQY7nOWaVMAMO-0-4ab689ec4c015be1a48b1c12596033f7)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/29.jpg?sign=1738842293-QbzsLc8VPz6MtYHXO7jhjUkVgaevzPan-0-8de5a4490fc48ecadebb692076f9c755)
将该文件保存后,使用浏览器直接打开,就可以看到效果。原生Vue.js的TODO-list项目界面如图2-2所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P30_64858.jpg?sign=1738842293-awVheJ1megiX1qqf3NZ3va1X1VnNrxIJ-0-e58da432e6d6a13cd8aef10c30d49fac)
图2-2 原生Vue.js的TODO-list项目界面
2.2.2 HTML代码的<head>部分
注释如下所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/30.jpg?sign=1738842293-xxVI7PhzjHHkSwZkLzvcYpFuClKUTtcL-0-ca3de9d504a8e6e5c0a1f960318db268)
2.2.3 HTML代码的<body>部分
注释如下所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P31_65576.jpg?sign=1738842293-vNbWE8TRHAkJJynYlYfJZQcmjUga2WJ4-0-f4e730d275f1b038d3d379ef13562864)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/32.jpg?sign=1738842293-Kiv6GSpjjk3LubqLl4kxUwCMZOIMKOm5-0-5d9a7463ff8f75f515b07c5d3a8ff319)
2.2.4 js代码部分
注释如下所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P33_63120.jpg?sign=1738842293-wtdzNCfogZp5psTOGo5zj186TOMeFly2-0-5596ae9ffe058d5c2bd21496556a8669)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P34_63121.jpg?sign=1738842293-rgWEa8s5g1TWXEacwwCLfhqSLiQ6cVRJ-0-a36d13187cdfb8c8b351cb7867e0fc68)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P35_63122.jpg?sign=1738842293-YqZN2ce9MXjlRWUcAAbpX4sqN9ZDn082-0-06671993cee13faaf80cc53e23ac673d)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P36_63123.jpg?sign=1738842293-8YHbIpAKqpxtTnw0AmVTLOkPuOZaLNXL-0-88dd94485b004eca879125538c025b4a)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P37_63124.jpg?sign=1738842293-qMR7wQavzEw26sQqxn2itX7IK8HU8yaS-0-61941aa5167d4441fd01a97941f58bc8)
2.2.5 小结
该例子总共217行,代码精炼、功能齐备。可以看出,使用Vue.js做开发效率非常高。
完整的代码可见:https://cn.vuejs.org/v2/examples/todomvc.html。
但是,一旦项目的需求增加,代码也会越来越膨胀,把html, js和css代码都写在一个文件中不是好主意,所以需要以一种更好的形式来组织文件,这就是Webpack框架下的Vue.js。