vue.js 初步实践Todolist(1)

一、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;
}

猜你喜欢

转载自blog.csdn.net/lalalawxt/article/details/81085753