![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=1739284904-cD8ShXtXDn8VUR37pGmAxiuoZACDWbDl-0-bf6724834b6e30efb877b9c2ec7fb3ae)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P25_65569.jpg?sign=1739284904-YQ6LcEmuSrCs0eydId6wwyYYXRtxxwM9-0-78d2859d7b0b574e1acd456947a29e07)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P26_65344.jpg?sign=1739284904-PMaEXTWMhyL5UI5bLWpyOd2rZs9WQxFX-0-9e7882b74e4bd60fa993ac32edbb8182)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P27_65570.jpg?sign=1739284904-6s0a8PiX2yv6p8HS4RarpbG8jJK9Shlz-0-5ceff79eae5f4b2a5719a1df23bfcdc0)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P28_65571.jpg?sign=1739284904-hov3QbV714r88KnyRNiRE7J2YErRAWpt-0-306fd2e96e9ee9f89183a18e72ef3523)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/29.jpg?sign=1739284904-RyYje4Id3vQvjHY1lMgAiJhKVCTXYaRO-0-bacc0b94d8e516969892b0a69dbb3331)
将该文件保存后,使用浏览器直接打开,就可以看到效果。原生Vue.js的TODO-list项目界面如图2-2所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P30_64858.jpg?sign=1739284904-s2xwYTuxbvhwXyugB8jjgifCq1RgvxRF-0-f62c4fa4f71a3bf075d4876dc0fe394e)
图2-2 原生Vue.js的TODO-list项目界面
2.2.2 HTML代码的<head>部分
注释如下所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/30.jpg?sign=1739284904-i60PuK4NR4p5P2NtYAEz8lY5Yxr2Ujed-0-40d694001989a1b8359c95fb5e4b789b)
2.2.3 HTML代码的<body>部分
注释如下所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P31_65576.jpg?sign=1739284904-4QUUxCR7pgKL7NzwIDqaM9IF5Jwh8KrH-0-55a70417e0ad4a876365c1b73e80b7c2)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/32.jpg?sign=1739284904-T4bLPb4YU7RUTW4Q7D82V1EmuCtNilM4-0-46733ad59b072c5948bf6b0265493636)
2.2.4 js代码部分
注释如下所示。
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P33_63120.jpg?sign=1739284904-C1iv64TceGtRdlBC9s61iB0nAnXxOH2x-0-f27552bf9b266f81d2bcded83fe74e06)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P34_63121.jpg?sign=1739284904-ozfCnF76ONMSjs9DdNKqVvx576Neesx2-0-7d2872cc8cadcdeef6bf5f2d551c7427)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P35_63122.jpg?sign=1739284904-UPF0tMtlOex9BDsdqa33gmKcHznSxQ4z-0-bdd4ba24ffa74cd64f1acccd30c8ad0a)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P36_63123.jpg?sign=1739284904-qFPN2rRlAYDP81SNWcfo65Ztmslqelyh-0-8c24ca19f70334f03c027a9ee98799d3)
![](https://epubservercos.yuewen.com/7D93CA/17214369305518906/epubprivate/OEBPS/Images/Figure-P37_63124.jpg?sign=1739284904-lS34NRsOzgRI4XtV2E3Ip8KtYDvVB6IZ-0-004895912dc997f49f23d4a855c4d2fd)
2.2.5 小结
该例子总共217行,代码精炼、功能齐备。可以看出,使用Vue.js做开发效率非常高。
完整的代码可见:https://cn.vuejs.org/v2/examples/todomvc.html。
但是,一旦项目的需求增加,代码也会越来越膨胀,把html, js和css代码都写在一个文件中不是好主意,所以需要以一种更好的形式来组织文件,这就是Webpack框架下的Vue.js。