![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=1739153763-G8LVWHUEmYOp2fjh2p5yTgFPc1HlIHQB-0-c81861313a4adead6be7eebe84a16352)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P25_65569.jpg?sign=1739153763-jKJYjRv6SOK9LUq95VGnIgiMh4dq4W34-0-6d36a1b9211cbc90d542a191688dd29b)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P26_65344.jpg?sign=1739153763-Vceb5gKnnecP2xnjMXBJy5aGh6mbyKTH-0-7b836319c5d133f05a2062a6b2f5638f)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P27_65570.jpg?sign=1739153763-grv3qLYGgdSPTEZIm1l5jh2RobObwoD2-0-8cc14e2a85687fcae7519008f17497d6)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P28_65571.jpg?sign=1739153763-Z9ePElJuAWZooGIAWnjqJSdNnPAZ4cKX-0-71dbc5eed7fec36653340f6eb3992494)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/29.jpg?sign=1739153763-vtb06kv8KhyKvAgQpqgklYTM2EYjKDzv-0-6ec41c3c68581ed6f2c6681b1b5a732b)
将该文件保存后,使用浏览器直接打开,就可以看到效果。原生Vue.js的TODO-list项目界面如图2-2所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P30_64858.jpg?sign=1739153763-UVVSOFH2k4jNmXDv4aN5LOwpraebO1kd-0-bc19e27324fd9517a5c27f015287faa1)
图2-2 原生Vue.js的TODO-list项目界面
2.2.2 HTML代码的<head>部分
注释如下所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/30.jpg?sign=1739153763-JNG4xDnMekZBUCoDOCMzpYn5B8SZJHjK-0-69c31fd05d017a85e4ade2b98cfb0b83)
2.2.3 HTML代码的<body>部分
注释如下所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P31_65576.jpg?sign=1739153763-rbN2q7MwHbkiM20VQnCAc5qlH0pw7QYu-0-0b3b950735445b3f10f7ea122a251a78)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/32.jpg?sign=1739153763-WX0QkAtRE7ISDcnRhoZPsz0iJMWVVACA-0-96d5360bc788ce478f8288a018fe0c24)
2.2.4 js代码部分
注释如下所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P33_63120.jpg?sign=1739153763-mYdhfQYCqJkcVdZvrCLVUxmyLsieO2J3-0-c128fddfae57ab7348b738a299912e8c)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P34_63121.jpg?sign=1739153763-FWn7r2NkBoljtenmFL67oHlR9CkKpBc6-0-177cf6ff47c5371c0b5d64b7fd2c6c77)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P35_63122.jpg?sign=1739153763-UrH8dQHEG1ex0cWldI8GSHgy4NdXdQmV-0-59cc32634ef64c10b88187d944888eed)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P36_63123.jpg?sign=1739153763-JrkuBy8Vse7lHhUqXK3lfTlCYkBSJsSx-0-3b3083ca3df57db3ff23f87f36f7aadc)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P37_63124.jpg?sign=1739153763-YvgqzFY2VfpqRc4LNOLr0KCpi6ZFhRuf-0-2ebe94b8038a36d7b53253773962aa86)
2.2.5 小结
该例子总共217行,代码精炼、功能齐备。可以看出,使用Vue.js做开发效率非常高。
完整的代码可见:https://cn.vuejs.org/v2/examples/todomvc.html。
但是,一旦项目的需求增加,代码也会越来越膨胀,把html, js和css代码都写在一个文件中不是好主意,所以需要以一种更好的形式来组织文件,这就是Webpack框架下的Vue.js。