一、vue.js 环境配置
(1)npm下载安装
下载安装node.js,vue.js的配置需要依赖npm, 而npm是与NodeJS一起安装的包管理工具。安装成功后,在cmd中输入命令行“npm -v” 检验是否安装成功,如下图所示:
因为国内使用npm 下载包速度比较慢,所以常用淘宝镜像,cnpm 代替npm,具体操作如下:
(2)vue 环境搭建
依次输入以下命令行:
cnpm install -g vue-cli
vue init webpack vue-todolist
cd vue-todolist
cnpm install
cnpm run dev
打开浏览器,在地址栏输入localhost:8080 就可以出现vue 主页面
(3)vue 组件 todolist
App.vue 分三部分:
1、<template></template> 相当于html 页面
2、<script></script> js代码
3、<style></style> css 代码
第一步,在<template>里写基本的页面,<style>中设计页面样式
<template>
<div id="app">
<h1>
<!--输入标题-->
</h1>
<!--todolist输入框-->
<input type="text" name="mybox">
<ul>
<li>
<!--list每项内容-->
</li>
</ul>
</div>
</template>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
第二步,<script> 中数据,方法和属性与<template> 双向绑定,export default 等价于 new Vue() , vue组件的重要对象有data,method,watch等,其中data就是直接显示在<template>上的数据,用{{}}就可以引用显示,vue对象设置是根据html指令设置,如v-text,v-html,v-if ,v-show,v-for,v-on,v-bind等。
<script>
export default {
data: function (argument) {
// body...
return {
title: 'this is a todo list',
items: [{
label:'walking',
isFinished : false
},
{
label:'swimming',
isFinished:true
},
],
newItem: '',
}
},
methods: {
togglefinish: function (item) {
// console.log(item)
item.isFinished = !item.isFinished
},
addNew: function () {
this.items.push({
label: this.newItem,
isFinished: false
})
this.newItem = ''
},
}
}
</script>
相应的<template>中添加html指令,如下图所示,v-model 表示在表单<input>及<textarea>上创建双向数据绑定,v-on 表示监听dom事件,v-for 表示列表渲染,v-for
指令需要使用 item in items
形式的特殊语法,items
是源数据数组并且 item
是数组元素迭代的别名。v-bind表示属性绑定。最终,实现了简单的todolist的添加和展示。
<template>
<div id="app">
<h1>{{title}}</h1>
<input v-model="newItem" v-on:keyup.enter="addNew" type="text" name="mybox">
<ul>
<li v-for="item in items" :key="item.id" v-bind:class="{finished:item.isFinished}" v-on:click=" togglefinish(item) ">
{{item.label}}
</li>
</ul>
</div>
</template>
<style>
.finished{
text-decoration: underline;
}