初识Vue,简单的todolist

vue开发源码:https://vuejs.org/js/vue.js

todolist代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>vue入门</title>
  <script src="vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
  <div id="app">
    <input v-model="inputValue" type="text" name="">
    <button @click="submit">提交</button>

    <ul>
      <todo-item
        v-for="(item, index) in list"
        :key="index"
        :content="item"
        :index="index"
        @delete="handleDelete"
        @update="handleUpdate"
        >
      </todo-item>
    </ul>
    <input v-model="updateValue" type="text" name="">
    <button @click="update">确定</button>
  </div>
</body>
<script type="text/javascript">

  Vue.component("todo-item", {
    props:["content", "index"],
    template:‘<li>{{content}} <button @click="handleClick">remove</button><button @click="handleUp">update</button></li>‘,
    methods:{
      handleClick:function() {
        this.$emit(‘delete‘, this.index)
      },
      handleUp:function() {
        this.$emit(‘update‘, this.index)
      }
    }
  })

  new Vue({
    el:"#app",
    data: {
      inputValue : ‘‘,
      updateValue : ‘‘,
      in:‘‘,
      list:[]
    },
    methods: {
      submit:function() {
        if(this.inputValue.trim() !== "") {
          this.list.push(this.inputValue);
        }
          this.inputValue = ‘‘
      },
      handleDelete: function(index) {
        this.list.splice(index, 1);
      },
      handleUpdate: function(index) {
        this.updateValue = this.list[index]
        this.in = index;
      },
      update: function() {
        console.log(this.in)
        this.list.splice(this.in, 1, this.updateValue);
        this.updateValue = ‘‘
      }
    }
  })
</script>
</html>

  重点:子组件与父组件的值传递

原文地址:https://www.cnblogs.com/detanx/p/vueTodolist.html

时间: 2024-10-16 21:37:12

初识Vue,简单的todolist的相关文章

初识 vue —— 最简单的前后端交互示例

一.初识 vue 时的困惑 最近想学一门前端技术防身,看到博客园中写 vue 的多,那就 vue 吧.都说 vue 的官方教程写得好,所以我就从官方教程开始学习.官方教程说"Vue (读音 /vju?/,类似于 view) 是一套用于构建用户界面的渐进式框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用."但是这个概念是个什么鬼?还是让人一头雾水嘛.而且我一开始也没有搞清楚 vue 的定位,只知道它是一个前端库,但是确实不知道它的优势是什么,还以为它是一个学会就能一劳永

vue写的简单版todolist

上一张丑图: 项目演示地址:http://47.75.195.199/todolist/源码地址:https://github.com/chunsenye/... <template> <div> <label >今天要做什么</label> <input type="text" v-model="text"> <input type="button" value="提交

使用React并做一个简单的to-do-list

1. 前言 说到React,我从一年之前就开始试着了解并且看了相关的入门教程,而且还买过一本<React:引领未来的用户界面开发框架 >拜读.React的轻量组件化的思想及其visual-dom的这种技术创新,也算是早就有了初步了解.一来没有学的太深入,二来后来在工作中和业余项目中都没有用到,因此慢慢的就更加生疏了. 近期,因为我想把自己的开源项目wangEditor能放在React.angular和vuejs中使用.先从react开始,顺手自己也重试一下React的基础知识,顺便再做一个小d

iOS流布局UICollectionView系列一——初识与简单使用UICollectionView

iOS流布局UICollectionView系列一--初识与简单使用UICollectionView 一.简介 UICollectionView是iOS6之后引入的一个新的UI控件,它和UITableView有着诸多的相似之处,其中许多代理方法都十分类似.简单来说,UICollectionView是比UITbleView更加强大的一个UI控件,有如下几个方面: 1.支持水平和垂直两种方向的布局 2.通过layout配置方式进行布局 3.类似于TableView中的cell特性外,Collecti

Vue简单基础 + 实例

vue的双向绑定原理:Object.defineProperty() vue实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调.当把一个普通 Javascript 对象传给 Vue 实例来作为它的 data 选项时,Vue 将遍历它的属性,用 Object.defineProperty() 将它们转为 getter/setter.用户看不

vue的初识与简单使用---前后端分离通过接口调取数据

vue的安装 #### 1.环境搭建 ''' - 安装node ``` 官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/ ``` - 安装cnpm ``` npm install -g cnpm --registry=https://registry.npm.taobao.org ``` - 安装脚手架 ``` cnpm install -g @vue/cli ``` - 清空缓存处理 ``` npm cache clean --force ``` #### 2.项

vue结合element-ui做简单版todolist

结合element-ui首先需要npm安装element-ui npm i element-ui -S: 然后在入口文件中引入: import ElementUI from 'element-ui'; import 'element-ui/lib/theme-chalk/index.css'; Vue.use(ElementUI); 这样就可以使用element-ui了,如果不用刻意忽略这一步: 由于代码中有注释,所以就不解释了,有兴趣可以看下代码, 效果如下:(比较丑,主要看功能吧..) 代码

vue之简单的todoList(一)

1 <!-- 根组件 --> 2 <!-- vue的模板内,所有内容要被一个根节点包含起来 --> 3 <template> 4 <div id="app"> 5 <input type="text" v-model="todo"> 6 <button @click="addData()">+增加</button> 7 <div v-fo

vue简单todolist

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" con