初学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>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

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

友情链接更多精彩内容