vue.js 开发环境安装成功。
http://localhost:8080/ 使用vue.js双向绑定实现类似这样一个任务清单页面。

下面是我的学习笔记。

//app.vue页面
<template><div id="app"><h1 v-text="title"></h1><input v-model="newItem" v-on:keyup.enter="addNew"><ul><li v-for="item in items" v-bind:class="{finished: item.isFinished}" v-on:click="toggleFinish(item)">{{item.label}}</li></ul></div>
</template><script>import Store from './store'export default{data(){return{title: "每 日 任 务",items: Store.fetch(),/*   [{"label":"俯卧撑10个","isFinished":true}{"label":"背单词10个","isFinished":false}]*/newItem:''//liclass:"thisisliclass"  //赋值class名称
      }},watch:{items:{handler:function(items){Store.save(items)},deep:true}},methods:{toggleFinish:function(item){item.isFinished = !item.isFinished},addNew:function(){this.items.push({label: this.newItem,isFinished:false})this.newItem=''}}}
</script><style>#app{width:400px;margin:0 auto;}.finished{text-decoration:line-through;}
</style>

 /*1.  export default  理解是,这是一个模块,export导出,导出的是一个对象。2.  data(){} 相当于 data:function(){},ES6语法。data是一个函授,函数返回一个对象3.  <h1 v-text="title"></h1> 的简写方式为 <h1>{{title}}</h1> 4.  v-text 和 v-html 是常用的数据渲染指令,text是纯文本,html会渲染html标签5.  v-for 可以渲染列表,v-for 指令需要以 item in items 形式的特殊语法6.  v-bind:class="[liclass]"创建一个class,需要在retrun中添加liclass:"thisisliclass" ,赋值class名称7.  v-bind:class="{finished: item.isFinished}"添加一个finished的class,创建一个对象,item.isFinished, 对应isFinished字段如果为true就显示这个finished的class,否则就不显示8.  v-on:click="toggleFinish(item)"v-don 是事件处理器,这里添加了click事件,在 data 里面添加toggleFinish(item)函数item.isFinished = !item.isFinishe , item.isFinished此时的值是布尔值 !item.isFinishe 是对 item.isFinished 的值进行取反,双向绑定,实现点击切换9. v-model 在表单控件上创建双向绑定,<input> ,  <select> , <textarea>v-on:keyup.enter="addNew"  添加键盘事件,指定enter键值,调用addNewthis.items.push       在items数组末尾添加元素label: this.newItem   新添加的lable值和input输入的值绑定isFinished:false      默认行为是falsethis.newItem=''       input值输入之后,清空10. watch 观察 Vue 实例变化的一个表达式或计算属性函数,items 指的是观察的对象handler:function(items) 传进handler这个函数里Store.save(items)       调用store.js里面的方法,并自动保存到 window.localStoragedeep:true               设置为true,会在页面刷新时更新 isFinished 状态,否则就不会更新Store.fetch()           调用store.js里面的方法,把存储的值给到 items
//store.js页面

const STORAGE_KEY = 'todos-vuejs'
export default{fetch(){return JSON.parse(window.localStorage.getItem(STORAGE_KEY) || '[]')},save (items){window.localStorage.setItem(STORAGE_KEY,JSON.stringify(items))}
}/*  1.const 是 es6 的语法, 是不会被重新赋值的变量。  2.export default  可以理解为一套模板,导出两个方法,也是es6的语法
*/

 

转载于:https://www.cnblogs.com/Agrass/p/6595887.html

vue.js 入门案例,双向绑定实现任务清单相关推荐

  1. 【进阶玩法】Angular用emit()实现类似Vue.js的v-model双向绑定[(ngModel)]功能

    app.component.html <app-sizer [(ngModel)]="fontSizePx"></app-sizer> <p [sty ...

  2. Vue.js 入门案例

    理解MVVM模型 <!DOCTYPE html> <html lang="en"> <head><meta charset="U ...

  3. b站黑马的Vue快速入门案例代码——【axios+Vue2】悦听player(音乐播放器)

    目录 本文中修改的原代码中的BUG: 修改方法: 本文案例代码仍有的BUG:(欢迎大家献计献策) 目标效果: 悦音player案例--效果展示视频: 更换的新接口/参数: 1.歌曲搜索接口:https ...

  4. js模板字符串自定义类名_【Vue.js 入门到实战教程】07Vue 组件注册 | 基本使用和组件嵌套...

    来源 | https://xueyuanjun.com/post/21929除了前面介绍的基本语法之外,Vue.js 还支持通过组件构建复杂的功能模块,组件可以称得上是 Vue.js 的灵魂,是 Vu ...

  5. Vue之数据的双向绑定

    在vue中实现数据双向绑定的核心在于v-model 示例: <input type="text" name=" " v-model="userN ...

  6. Vue.js入门教程(适合初学者)

    Vue.js入门教程 Vue官网网址:Vue.js 中文网 Vue.js Vue.js是渐进式JavaScript 框架,是一套构建用户界面的渐进式框架.也可以说Vue.js 是一个用来构建网页界面的 ...

  7. vue设置cookie的domain无效_【Vue.js入门到实战教程】16Tailwind 与 Bootstrap 的区别和使用入门...

    来源 | https://xueyuanjun.com/post/22065我们知道,从 Laravel 8 开始,自带前端脚手架代码默认兼容 Tailwind CSS 框架,取代了之前的 Boots ...

  8. Vue.js入门教程-组件注册

    一.组件创建 1.1 创建步骤 创建Vue的组件都有三个基本步骤是 [①创建组件构造器.②注册组件和③使用组件]. 1.2 基本示例 比如,我们创建一个Button组件. // 1. 创建一个组件构造 ...

  9. 【Vue】—数据的双向绑定v-model

    [Vue]-数据的双向绑定v-model

最新文章

  1. 关于Redis的使用!
  2. 恢复后缀phobos勒索病毒 解密成功 百分百恢复sql文件
  3. java search 不能使用方法_elasticsearch(七)java 搜索功能Search Request的介绍与使用...
  4. Mysql删除语句优化_MySQL性能优化之常用SQL语句优化
  5. JS 将有规律的数组,转换成对象数组
  6. oracle 会话 lock,相克军_Oracle体系_随堂笔记014-锁 latch,lock
  7. 服务器定期监控数据_基础设施硬件监控探索与实践
  8. 2020-08-27
  9. 天气之子电脑壁纸_今年最受期待的5部日本动画电影,新海诚新作《天气之子》领衔...
  10. crm高速开发之OrganizationService
  11. 【Docker】问题汇总
  12. php curl获取404,php使用curl判断网页404(不存在)的方法
  13. Python资源索引 【转载】
  14. 人工智能系列:AI 可视化训练平台
  15. 百度地图导航工具类,包含骑行步行及驾车导航
  16. linux 搜狗输入法使用技巧,在Deepin 20系统中使用官方搜狗输入法的技巧
  17. linux 搜狗不能打中文,linux下搜狗输入法不能输入中文的解决方案
  18. 做程序员,需要学习哪些专业知识?
  19. ​​​LabVIEW DLL传递一个二维数组报错
  20. 敲一万小时的代码可以成为大牛吗?

热门文章

  1. 对于一些敏感的数据(例如密码),为什么使用字符数组存储比使用String更安全?
  2. VoltDB培训PPT一则
  3. Vmware ESXi应用之如何使用母盘模板部署虚拟机
  4. resultSet.next() 位置处报错:java.lang.OutOfMemoryError: Java heap space
  5. 程序员如何勇敢说“不”!
  6. python换行输出到文件_Python的quot;printquot;函数在“Hello World”之外的延伸
  7. GameJS——Game Library written in JavaScript
  8. 计算机上无线网络开关在哪里,笔记本电脑无线网开关在哪_笔记本电脑如何打开无线网-win7之家...
  9. socket简介和udp网络程序-发送、接收数据
  10. linux tomcat守护_Linux 系统下 Tomcat 的服务配置和性能优化