引自:https://mrbird.cc/Vue-Learn-Note.html mrbird大佬博客

Vue 入门

<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>todoList</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script></head><body><div id="app">
    <input type="text" v-model="inputValue"/>
    <button @click="createTodoList">提交</button>
    <ul>
        <li v-for="item in list">{{item}}</li>
    </ul></div><script>
    var app = new Vue({
        el: "#app",
        data: {
            list: [],
            inputValue: ''
        },
        methods: {
            createTodoList: function () {
                if (!this.inputValue) {
                    alert('请输入内容');
                    return;
                }
                this.list.push(this.inputValue);
                this.inputValue = '';
            }
        }
    });
</script>
  1. var app = new Vue({})创建了一个实例,通过el: "#app"接管了ID为app的div的所有内容。
  2. data属性用于装载数据,包含list和inputValue。
    • v-for指令用于遍历集合,这里用于遍历list数组中的值;
    • v-model指令用于双向数据绑定,即在<input type="text" v-model="inputValue"/>中输入的值会改变Vue实例中inputValue的值,通过JS改变Vue实例inputValue的值也会改变<input type="text" v-model="inputValue"/>中的值。
  3. @click指令用于绑定事件,这里绑定了createTodoList事件,对应Vue实例methods中的createTodoList。

全局Vue组件


<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>todoList</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script></head><body><div id="app">
    <input type="text" v-model="inputValue"/>
    <button @click="createTodoList">提交</button>
    <ul>
         <todo-item v-bind:content="item"
                   v-bind:index="index"
                   v-for="(item,index) in list">
        </todo-item>
    </ul></div><script>
    Vue.component('TodoItem',{
        props: ['content','index'],
        template: '<li>{{index+1}}-{{content}}</li>'
    });

    var app = new Vue({
        el: "#app",
        data: {
            list: [],
            inputValue: ''
        },
        methods: {
            createTodoList: function () {
                if (!this.inputValue) {
                    alert('请输入内容');
                    return;
                }
                this.list.push(this.inputValue);
                this.inputValue = '';
            }
        }
    });
</script></body></html>

这里我们使用Vue.component('TodoItem',{})定义了一个名称为TodoItem全局Vue组件,可以在任何Vue管理的Dom中使用:

  1. TodoItem组件可以使用<todo-item>的方式使用,即大写可以转换为小写,第二个大写字母转小写后必须加上-前缀;
  2. v-bind指令用于绑定值,这里通过v-bind:content将content变量的值绑定为item(即list中的每个元素值),通过v-bind:index将index变量的值绑定为index(即当前循环的下标)。v-bind可以简写为:
  3. props属性用于向子组件传递数据,这里接收了由:bind指令传递了从父组件绑定过来的index和content变量;
  4. template定义了模板,即这个Vue组件呈现的样子(通常都是一段HTML加上父组件传递过来的变量值)。
    在这个过程中,我们除了学会了怎么定义全局Vue组件外,还学会了怎么从父组件中往子组件传值。

<div id="app">这个Dom结构已经被Vue接管,其内部又包含了<todo-item>Vue组件,所以我们将<div id="app">称之为父组件,<todo-item>称之为子组件。

局部Vue组件

定义一个局部组件来改造上面的todoList:


<!DOCTYPE html><html lang="en"><head>
    <meta charset="UTF-8">
    <title>todoList</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script></head><body><div id="app">
    <input type="text" v-model="inputValue"/>
    <button @click="createTodoList">提交</button>
    <ul>
        <todo-item :content="item"
                   :index="index"
                   v-for="(item,index) in list"
                   @delete="deleteTodoList">
        </todo-item>
    </ul></div><script>
    var TodoItem = {
        props: ['content', 'index'],
        template: '<li @click="handleItemClick">{{index+1}}-{{content}}</li>',
        methods: {
            handleItemClick: function () {
                this.$emit('delete', this.index)
            }
        }
    };

    var app = new Vue({
        el: "#app",
        components: {
            TodoItem: TodoItem
        },
        data: {
            list: [],
            inputValue: ''
        },
        methods: {
            createTodoList: function () {
                if (!this.inputValue) {
                    alert('请输入内容');
                    return;
                }
                this.list.push(this.inputValue);
                this.inputValue = '';
            },
            deleteTodoList: function (index) {
                console.log(index);
                this.list.splice(index, 1);
            }
        }
    });
</script></body></html>
Vue基础学习

相关文章

  1. java笔记7----java中的方法、递归

    1、方法 方法的定义 在程序开发的过程中&#xff0c;会编写到很多重复的代码&#xff0c;&#xff0c;可以使用方法对这些代码进行管理&#xff0c;可以使用方法实现对代的管理和重用(重复使用)&#xff0c;可以把方法理解成一个可以重复多次使用的功能。 方法的格式 在给方法…...

    2023/6/9 2:08:19
  2. Python和C语言哪个更容易学,感觉学了C语言有点难,只学过C语言的大学生很迷茫?

    学Python第一天&#xff1a;哇做一个ab程序看上去挺简单的&#xff0c;编程看上去没那么难。 学C第一天&#xff1a;我的天include是啥&#xff1f;main是啥&#xff1f;return是啥&#xff1f;……int, float, double, char都是啥&#xff1f; &#xff08;不正经地&#xf…...

    2023/6/9 4:55:29
  3. 剑指 Offer 38. 字符串的排列

    题目描述&#xff1a; 输入一个字符串&#xff0c;打印出该字符串中字符的所有排列。 你可以以任意顺序返回这个字符串数组&#xff0c;但里面不能有重复元素。 示例: 输入&#xff1a;s "abc" 输出&#xff1a;["abc","acb","bac",&…...

    2023/6/6 1:34:52
  4. “linux系统内网穿透、外网访问”教程

    由于Linux操作系统安全性优于Windows&#xff0c;所以很多用户选择使用Linux系统作为服务器&#xff0c;那么如何在Linux系统上运行快解析程序呢&#xff0c;下面就详细给大家讲一下操作步骤。 安装步骤如下&#xff1a; 1)下载金万维gnhostlinux动态域名Linux/Unix下客户端软件…...

    2023/6/9 0:10:27
  5. vue-@media媒体查询使用

    1、vue需要安装sass-loader和node-sass2个插件来使用 ①安装sass: npm install sass-loader --save-dev②安装node: npm install -g cnpm --registryhttps://registry.npm.taobao.org2、直接在每个页面中使用 我这里是&#xff1a;样式写的适配小于750px和大于750px是什么样…...

    2023/6/7 13:57:03
  6. 使用visualization_msgs::Marker可视化

    介绍: visualization_msgs::Marker格式如下: //各种标志物类型的定义&#xff0c;每一个的具体介绍和形状可以到这里查看&#xff1a;http://wiki.ros.org/rviz/DisplayTypes/Marker uint8 ARROW0//箭头 uint8 CUBE1//立方体 uint8 SPHERE2//球 uint8 CYLINDER3//圆柱体 uint…...

    2023/6/9 7:35:11
  7. 蓝桥杯-九宫重排(python)

    蓝桥杯-九宫重排&#xff08;python&#xff09; 目录蓝桥杯-九宫重排&#xff08;python&#xff09;题目描述思路和总结&#xff1a;题目描述 如下面第一个图的九宫格中&#xff0c;放着 1~8 的数字卡片&#xff0c;还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空…...

    2023/6/7 9:50:55
  8. windows 安装apex

    标题windows 安装apex windows安装可以加速的apex 由于需要使用cuda进行计算&#xff0c;在github官网下载apex&#xff0c;然后在windows上面进行安装&#xff0c;使用的命令是python setup.py install .虽然安装成功&#xff0c;但是不能够正常使用。 后来尝试安装命令&…...

    2023/6/6 7:43:10
  9. 哈尔滨工业大学提出光学设计新思路:基于快速可微光线追迹的端到端单透镜成像系统设计

    基于快速可微光线追迹的端到端单透镜成像系统设计 End-to-end learned single lens design using fast differentiable ray tracing 作者单位&#xff1a;哈尔滨工业大学空间光学工程研究中心 论文地址&#xff1a;https://doi.org/10.1364/OL.442870 近年来&#xff0c;基于…...

    2023/5/27 21:20:27
  10. RabbitMQ启动失败解决

    RabbitMQ启动失败解决 对梦想的牵挂 2019-06-14 15:04:01 39160 收藏 6 分类专栏&#xff1a; 【----linux----】 【----RabbitMQ----】 文章标签&#xff1a; RabbitMQ Liunx 版权 【----linux----】 同时被 2 个专栏收录 10 篇文章0 订阅 订阅专栏 【----RabbitMQ----】…...

    2023/6/2 14:02:53
  11. 天风证券基金产品的爬取

    #-*-coding:GBK -*- #******************** #微信&电话&#xff1a;13248260503 # 证券开户 研报收集 # 代码交流 数据分析 # 脚本开发 投资推荐 #******************** import urllib.request import requests import re import random import time from urllib.parse im…...

    2023/5/26 16:13:22
  12. 愉快的周末 愉快的在CentOS 7简单安装宝塔面板

    CentOS 7简单安装宝塔面板前言一、Linux系统安装宝塔面板脚本二、宝塔使用步骤总结前言 因为之前在腾讯云买了个云服务器&#xff0c;用来反弹shell比较方便&安全&#xff0c;而且想着可以自己搭个网站玩玩&#xff0c;但是每次配置端口或者服务的时候都要在控制端扫码登录…...

    2023/6/7 10:32:51
  13. linux发行版的ISO下载

    linux发行版的ISO下载 (1) debain系列&#xff1a; Debian ISO映像文件: http://www.debian.org/distrib/ Ubuntu ISO映像文件: http://www.ubuntu.com/download (2) redhat系列&#xff1a; redhat企业级Linux试用版ISO映像文件&#xff1a;https://www.redhat.com/zh …...

    2023/5/30 18:33:24
  14. Mysql集群架构

    1. 集群架构设计 1.1 架构设计理念 主要从三个维度考虑问题&#xff1a; 可用性扩展性一致性 1.2 可用性设计 站点高可用&#xff0c;冗余站点服务高可用&#xff0c;冗余服务数据高可用&#xff0c;冗余数据 保证高可用的方法是冗余。 但是数据冗余带来的问题是数据一致性…...

    2023/6/6 11:12:09
  15. 运算符与表达式(算数、赋值、比较、逻辑、成员关系、对象实例测试、位运算、一元运算)运算符的优先级

    运算符 运算符分类 python3中地板除 >>> 8//3 #使用两个//就可以 2 算数运算符 赋值运算符 比较运算符 可以多个运算符连用** 如3>5>3 等价于3>5and 5>3 逻辑运算符 对于包含了and or not的表达式&#xff0c;从左往右运算&#xff0c;但是会有短路运…...

    2023/5/30 6:13:25
  16. 沃尔玛悄悄注册元宇宙商标,准备进军虚拟市场

    沃尔玛悄悄注册元宇宙商标&#xff0c;准备进军虚拟市场&#xff0c;今早各大媒体争相报道沃尔玛悄悄开始注册新商标&#xff0c;元宇宙又添一名得力干将&#xff0c;在很多人都不知道元宇宙是什么的时候&#xff0c;我国知名品牌们都已经开始为之后的发展蓄力了&#xff0c;下…...

    2023/6/6 14:12:01
  17. JPEG原理快速理解

    一、图像分割 将图像分割成8x8子块 二、颜色空间转换 RGB-> YCbCr 通过三个数学式子&#xff0c;即可完成转换 比如将图片分解成YCrCb 三、离散余弦变换 说简单点就是二维傅里叶变换&#xff0c;把各个像素的值用很多个余弦函数相加 四、量化 把每个DCT变换后的值经…...

    2023/5/23 8:34:30
  18. 设计模式之抽象工厂模式

    抽象工厂模式1.抽象工厂模式2.介绍3.实现1.抽象工厂模式 抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式&#xff0c;它提供了一种创建对象的最佳方式。 …...

    2023/5/25 8:45:39
  19. 如何用实在RPA快速调用AI能力?

    前文:黛玉只就宝玉手中看了一看&#xff0c;便问道&#xff1a;“还是单送我一人的&#xff0c;还是别的姑娘们都有呢?”周瑞家的道&#xff1a;“各位都有了&#xff0c;这两支是姑娘的了。” Al续写&#xff1a;黛玉却想道&#xff1a;“我如今是个孤女&#xff0c;他们送的…...

    2023/5/27 3:08:32
  20. 动态链表----单向循环链表的实现

    1. 单向循环链表的定义&#xff1a;如果把单链表的最后一个节点的指针指向链表头部&#xff0c;而不是指向null&#xff0c;那么就构成了一个单向循环链表。如图&#xff1a; 2. 单向循环链表的实现&#xff1a;单向循环链表实现与单向链表的实现相似&#xff0c;同样是实现线性…...

    2023/6/4 21:57:09

最新文章

  1. SPRING常用注解及其作用

    SPRING常用注解及其作用 1&#xff09;声明bean的注解 Component是一种注解&#xff0c;用于标识一个类作为组件&#xff08;Component&#xff09;。组件是Spring中的一个通用术语&#xff0c;用于表示可被Spring容器管理和使用的对象。通过该注解&#xff0c;可以实现组件的…...

    2023/6/9 11:38:47
  2. 科普:python怎么使用Pyinstaller模块打包成可执行文件

    目录 1. 使用conda创建虚拟环境2. 列出所有虚拟环境查看是否创建成功3. 激活虚拟环境4. 安装Pyinstaller模块5. Pyinstaller模块常用参数6. 例子&#xff1a;Windows打包成单个文件并可使用命令行窗口并自定义文件logo 1. 使用conda创建虚拟环境 创建个虚拟环境来打包&#xf…...

    2023/6/9 11:38:33
  3. 1999-2020年31省省农村人口就业和文化程度相关数据

    1999-2020年31省省农村人口就业和文化程度相关数据 1、时间&#xff1a; 2、范围&#xff1a;包括全国31省 3、来源&#xff1a;整理自各省NJ、统计NJ、农村NJ 4、指标包括&#xff1a; 乡村人口和乡村就业人员&#xff1a;乡村人口&#xff08;万人&#xff09;、乡村人口&…...

    2023/6/9 11:38:19
  4. excel中的vlookup函数使用,查找对应信息

    简单做一个小表格&#xff0c;第一列序号、第二列姓名、第三列数值 显然我这里都乱序了&#xff0c;是为了更好的展示 vlookup函数是查找函数的一种&#xff0c;有四个参数&#xff1a; VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) lookup_value&#xf…...

    2023/6/9 11:38:04
  5. 基于html+css的图展示116

    准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…...

    2023/6/9 11:37:50
  6. 异常检测学习笔记 二、基于角度和深度的极值分析技术

    一、异常检测的概率模型 为您的数据选择合适的模型,选择一个概率阈值,低于该阈值将数据标记为异常,计算观察数据中每个实例的概率,低于阈值的情况属于异常情况。 研究表明,世界杯比赛的进球数可以很好地近似于泊松分布。在一场比赛中进n球的概率由下式给出: ,其中λ是每…...

    2023/6/9 11:37:35
  7. 如何在RPC和RESTful之间做选择?

    不同软件系统之间的通信可以通过RPC&#xff08;远程过程调用&#xff09;或RESTful&#xff08;表现层状态转移&#xff09;协议来建立&#xff0c;这些协议允许多个系统在分布式计算中协同工作。 这两种协议在设计哲学上有所区别。RPC使得可以像调用本地过程一样调用服务器上…...

    2023/6/9 11:37:23
  8. 国产openeuler22.03容器环境下/etc/sysconfig/iptables保存的防火墙策略在服务器重启后不生效的问题分析和解决

    openeuler22.03容器环境下可以通过iptables进行访问限制以保障容器安全&#xff0c;但发现服务器重启后&#xff0c;在“Chain DOCKER"链中的配置不生效&#xff08;其实centos/redhat环境也有相同问题&#xff09;。本文对其原因进行分析并提供解决办法。 一、问题现象 …...

    2023/6/9 11:37:10
  9. 【C++/嵌入式笔试面试八股】二、11.操作系统概述 | 进程的组成、组织

    一、操作系统概述 01.大内核微内核区别 大内核 大内核指的是将所有操作系统服务都包含在内核中的设计方式,包括文件系统、网络协议栈、设备驱动程序等。在大内核中,所有服务共享同一个地址空间,因此服务之间的通信速度很快,但是代码很复杂,可靠性较低,一个服务的故障可…...

    2023/6/9 11:36:38
  10. Vue2 事件的默认和传播行为、事件修饰符

    前言 在学习vue2时&#xff0c;学到了 事件修饰符&#xff0c;但是对事件的默认行为和传播行为不太理解&#xff0c;所以也就是不知道为啥要使用事件修饰符&#xff0c;所以找了一些资料&#xff0c;在此记录一下。 Vue2官方文档 事件处理 — Vue.js (vuejs.org)https://v2.…...

    2023/6/9 11:36:25
  11. 01_MySQL索引简介

    影响性能下降、SQL慢体现在&#xff1a;执行时间长或者等待时间长 影响sql性能的常见情况&#xff1a; 数据过多&#xff1a;分库分表(根据微服务划分库、按照地域或时间分表存储、按照数据的特定字段对分库数量求余)关联了太多的表&#xff0c;太多join&#xff1a;允许表出现…...

    2023/6/9 11:35:22
  12. SecDevOps 相关知识了解学习 —— 筑梦之路

    SecDevOps指的是将安全实践整合到DevOps流程中。它强调了软件开发人员、IT安全团队和运营人员之间的合作、沟通和自动化的重要性&#xff0c;以确保安全性融入软件开发生命周期。 通过采用SecDevOps方法&#xff0c;组织可以在开发过程的早期阶段解决安全风险。这可以导致更快的…...

    2023/6/9 11:34:47
  13. 1.4C++运算符重载作函数

    C运算符重载函数作为类成员函数 作为类成员函数时&#xff0c;运算符重载函数使用类的成员变量作为操作数。 写个 demo&#xff1a; 运算符重载函数作为类成员函数时&#xff0c;需要注意&#xff1a;运算符重载函数必须是类的成员函数&#xff0c;不能是普通函数或者全局函…...

    2023/6/9 11:34:27
  14. Nacos集群Raft反序列化漏洞-修复

    近日&#xff0c;奇安信CERT监测到 Nacos 集群Raft反序列化漏洞(QVD-2023-13065)&#xff0c;在Nacos集群处理部分Jraft请求时&#xff0c;攻击者可以无限制使用hessian进行反序列化利用&#xff0c;最终实现代码执行。鉴于该漏洞仅影响集群间通信端口 7848(默认配置下)&#x…...

    2023/6/9 11:34:00
  15. java html导出添加空行和空格

    情景&#xff1a; 要求导出签批单&#xff1a; 格式如下&#xff0c; 要获取“主办处室负责人”和“相关处室会签”环节的处理意见、处理人员和处理日期进行替换&#xff0c;导出word文档。 处理&#xff1a; 主要是如何拼接内容&#xff1f; 方法一&#xff1a; 导出word&…...

    2023/6/9 11:31:58
  16. springboot第25集:实体类定义规则

    PO&#xff1a;持久化对象&#xff0c;一个PO对象对应一张表里面的一条记录。全部对应 VO&#xff1a;View视图对象&#xff0c;用来在页面中展示数据的&#xff0c;页面需要哪些字段属性就添加哪些&#xff0c;查询出来之后赋值操作比PO对象要简单。所以提高性能。 DTO&#x…...

    2023/6/9 11:31:25
  17. 【ElementUI 表单校验】一个 el-form-item 下多个表单校验(循环校验)

    前端项目开发中&#xff0c;表单的应用是必不可少的&#xff0c;不管使用的原生、还是框架如&#xff1a;ElementUI、Ant Design Vue 等。基本的表单应用比较简单&#xff0c;按照文档中的描述使用即可。 官网地址 如下图&#xff1a; 使用 ElementUI 中的表单代码如下&…...

    2023/6/9 11:30:09
  18. Linux之进程间通信——管道

    文章目录 前言一、进程间通信1.概念2.目的3.进程间通信分类 二、管道1.管道介绍2.管道分类1.匿名管道pipi创建管道文件&#xff0c;打开读写端fork子进程关闭父进程的读取端&#xff0c;关闭子进程的写入端读写特征管道特征 2.命名管道mkfifo创建管道文件删除管道文件通信 三、…...

    2023/6/9 11:29:38
  19. sklearn中的roc_auc_score(二分类或多分类)

    官方API地址&#xff1a; sklearn.metrics.roc_auc_score — scikit-learn 1.2.2 documentationExamples using sklearn.metrics.roc_auc_score: Release Highlights for scikit-learn 0.22 Release Highlights for scikit-learn 0.22 Probability Calibration curves Probabi…...

    2023/6/9 11:28:38
  20. Spark数据倾斜解决方案一:源数据预处理和过滤倾斜key

    前言 为什么把源数据预处理和过滤掉倾斜的key两种处理倾斜的方式写到一起? 因为这两种方式在实际的项目中场景较少而且单一,对于数据源预处理,比如原本要在spark中进行聚合或join的操作,提前到hive中去做,这种方式虽然解决了spark中数据倾斜的问题,但是hive中依然也会存…...

    2023/6/9 11:28:21