初学vue实现todolist项目(上)

通过三天对vue的学习,上手一个简单项目来加深理解。

安装vue

方案一:<script>标签直接引入

  1. 你可以使用cdn直接引入
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
  1. 也可以通过官网下载vue.js文件

方案二:使用vue-cli快速搭建项目

安装vue-cli

       确保电脑已经安装有git和node
  • 打开命令行,安装
npm install -g @vue/cli
# OR
yarn global add @vue/cli
  • 安装完成后可以检验一下是否安装完成
vue --version
  • 在目标文件夹下,创建一个vue项目
npm install -g @vue/cli-init
# 在这因为使用的是2.x版本,因此使用init功能创建。3.0版本方法可参考官网
vue init webpack my-project

需要补充的基础知识

创建实例

<!DOCTYPE html>
<html dir="ltr">
  <head>
    <meta charset="utf-8">
    <title>todolist</title>
    <script src="./vue.js"></script>
  </head>
  <body>
    <div id="app"></div>
    <script>
      var vm = new Vue({   //我们主要通过new字符来创建一个Vue实例,在这里我们把新创建的实例放在对象vm上
        el:"#app",//el是element的简写,代表创建的实例需要挂载于id为app的dom元素下
        data: {               //data属性用于储存
          content:"Jack",
        },
        methods: {           //方法写在这里面
          handleClick: function() {
            alert("Jack")
          }
        }
      })
    </script>
  </body>
</html>

数据

在data属性中的数据怎么样调用显示呢?
可以直接在挂在的dom元素中添加{{变量名}}(差值表达式)获取数据值。

<div id="app">{{content}}</div>

我们还可以通过v-html和v-text指令的方法来实现

<div id="app" v-text="content"></div>
<div id="app" v-text="content"></div>

在这里,这两个指令在页面显示的内容都是完全一样的。但是他们有区别的。

如果我们将content的内容修改一下,

content:"<h1>Jack<h1>"

我们会看到,v-text显示的内容为第一行。v-html的内容为第二行。v-html并不会转译数据的内容,但是v-text能将标签的内容转译并显示出来。使用差值表达式和v-text效果一样。

<h1>Jack<h1>
Jack//以h1标签的格式显示

值得补充的是三种模板语法“ ”或{{ }}中可按JavaScript语法书写。

事件和方法

  • v-on:绑定事件(可简写为@ 例如:@click)
<div id="app" v-on:click="handleClick">{{content}}</div>

  methods: {           //写在vue实例当中,完整代码可参考上面第一段代码
          handleClick: function() {
            alert("Jack")
          }
        }

属性绑定和双向绑定

  • 属性绑定v-bind:
    例如我们需要为标签绑定一个叫做item属性的,属性值为“hello world”

那么我们应该写为

<div v-bind:item="hello world">{{content}}</div>
//或者简写为
<div :item="hello world">{{content}}</div>
  • 双向绑定v-model:
    所谓双向绑定就是既可以通过数据改变显示值,也可以通过输入改变输入值来改变数据值,可以实现双向数据改变。这个也是实现todolist项目很重要的一点。

双向绑定看文字解释的话,可能有点晕。那就将下边的代码加入挂载的标签下,看看页面有什么效果(试着改变一下输入框的内容)

<input v-model="content"/>
<h1>{{content}}<h1>

v-for指令

我们用 v-for 指令根据一组数组的选项列表进行渲染。
这样我们就可以通过改变数组数据来改变列表个数和内容了,这是实现todolist列表项的关键。

<ul>
    <li v-for="item of list"></li>
</ul>

//实例中
data:{
    content:'',
    list:['1','2','3','4','5']
}

通过v-for以上事例将可以渲染为五个li标签内容分别1,2,3,4,5。
以上代码等同于以下代码

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
</ul>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容

  • # 传智播客vue 学习## 1. 什么是 Vue.js* Vue 开发手机 APP 需要借助于 Weex* Vu...
    再见天才阅读 3,540评论 0 6
  • 基于Vue的一些资料 内容 UI组件 开发框架 实用库 服务端 辅助工具 应用实例 Demo示例 element★...
    尝了又尝阅读 1,151评论 0 1
  • 最近刚从学校迈入社会,这是一个与自己内心作斗争的过程。有些人面对生活琐事,可能是得心应手的,能力强,随机...
    数学一直迷茫阅读 816评论 0 3
  • 我想隔着车窗,去看这个世界的风景。不回望来路,不计较终途。 我有一个很好的闺蜜,从六年级到高三,一直感情...
    甜不是糖阅读 190评论 0 2
  • 杜汶泽又拍了照片,他和另外几个人在工地上发了这个照片,表达十分的迅速。看到这些照片的时候第一个反应就是这到底是什么...
    不像话的故事阅读 217评论 0 0