Vue2--入门学习
看了慕课网的教学视频,觉得挺不错的,在此做个随堂记录,有兴趣的可以去看视频
vue版本:2.5
文档链接:https://v2.cn.vuejs.org/v2/guide/installation.html
视频链接:https://www.imooc.com/video/16976
在vue官网下载开发版本的vue.js,并复制其代码到编译器中创建的vue.js文件中
然后在创建index.html文件,在head部引用这个文件,就可以了
1、第一个vue实例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Vue入门</title>
<script src="./vue.js"></script> <!--引用js库文件-->
</head>
<body>
<div id="root"> <!--vue实例的挂载点-->
<h1>{{msg}}</h1> <!--{{变量名}}:插值表达式,接收data里对应变量名的值-->
</div>
<script>
new Vue({ //使用new创建实例
el: "#root", //接收id=root的元素,将实例与模板进行绑定
//template: '<h1>{{msg}}</h1>', 模板内容,等同于<div>里的内容
data:{ //vue实例内的数据板块
msg: "hello world"
}
})
</script>
</body>
</html>
效果展示:
2、挂载点,模板,实例之间的关系/数据,事件与方法
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>挂载点,模板,实例之间的关系/数据,事件与方法</title>
<script src="./vue.js"></script> <!--引用js库文件-->
</head>
<body>
<div id="root"> <!--vue实例的挂载点,里面的数据为模板内容-->
<h1>hello {{msg}}</h1> <!--{{变量名}}:插值表达式,接收实例data里对应变量名的值-->
<h2 v-text="content"></h2> <!--v-text:接收后面的变量值-->
<h4 v-html="content"></h4> <!--与v-text的区别在于:v-html不会转义-->
<div v-on:click="handleClick">{{contents}}</div> <!--鼠标点击,引发事件,方法为handleClick-->
<div @click="handleClick">{{contents}}</div> <!--v-on的简写-->
</div>
<script>
new Vue({ //使用new创建实例
el: "#root", //接收id=root的元素,将实例与模板进行绑定
data:{ //vue实例内的数据板块
msg: "hello world",
content: "<h1>hello</h1>",
contents: "hello"
},
methods:{ //vue实例内的函数板块
handleClick: function () { //handleClick方法的具体函数
this.contents = "world" //为vue实例里data下的contents变量,重新赋值
}
}
})
</script>
</body>
</html>
效果展示:点击最下面两个hello,会变成world
3、属性绑定和双向数据绑定
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>属性绑定和双向数据绑定</title>
<!--单向绑定:数据决定页面的内容,但页面不可改变数据内容;双向绑定:页面亦可改变数据内容-->
<script src="./vue.js"></script>
</head>
<body>
<div id="root">
<!--<div title="this is hello world">hello world</div>;title: 鼠标放在hello world上时展示的提示语;-->
<div :title="title">hello world</div> <!--v-bind:属性与数据向绑定;可缩写为:-->
<input v-model="content"/> <!--v-model:模板指令,当页面的content改变时,数据data里的content也相应改变-->
<div>{{content}}</div> <!--为双向绑定做验证,页面上应跟v-model的数据一致-->
</div>
<script>
new Vue({
el:"#root",
data:{
title:"this is hello world",
content:"this is content"
}
})
</script>
</body>
</html>
效果展示:修改表框内的数据,其下一行会随着改变
4、计算属性与侦听器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>计算属性与侦听器</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="root">
姓:<input v-model="firstName"/>
名:<input v-model="lastName"/>
<div>{{fullName}}</div>
<div>{{count}}</div>
</div>
<script>
new Vue({
el:"#root",
data:{
firstName: '',
lastName: '',
count: 0
},
computed:{ <!--计算属性:一个属性由其他属性计算得来;当其他属性无变化时,fullName不会变更,会使用上一次计算的缓存,只有当其他属性有变化时才变化-->
fullName: function (){
return this.firstName + ' ' + this.lastName
}
},
watch:{ <!--侦听器,监听属性的变化-->
firstName: function (){ <!--当firstName属性变化时,做下面的动作-->
this.count ++
},
lastName: function (){
this.count ++
}
}
})
</script>
</body>
</html>
效果展示:随着输入姓名的次数变化,最下面的计数值也会随着增加
5、v-if,v-show,v-for指令
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>v-if,v-show,v-for 指令</title>
<script src="vue.js"></script>
</head>
<body>
<div id="root">
<div v-if="show">hello world</div> <!--通过点击按钮,显示或隐藏文本;show=ture时才会显示-->
<div v-show="show">hello world</div> <!--跟v-if的区别:v-show是用css标签来隐藏div,而if是直接删除此div标签,如果需要频繁显示与隐藏的话,建议使用v-show,其他用v-if-->
<button @click="handleClick">toggle</button> <!--button:标记一个按钮-->
<ul>
<li v-for="(item, index) of list" :key="index">{{item}}</li> <!--循环获取list的数值和下标,对应变量item,index,并展示item;需要添加:key属性来提升性能,key值不能相同,若需频繁对列表进行表更,则不适用index-->
</ul>
</div>
<script>
new Vue({
el:"#root",
data: {
show: true,
list: [1,2,3]
},
methods: {
handleClick: function () {
this.show = !this.show;
}
}
})
</script>
</body>
</html>
效果展示:点击toggle按钮,显示或隐藏hello world
6、TodoList
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>TodoList</title>
<script src="vue.js"></script>
</head>
<body>
<div id="root">
<div>
<input v-model="inputValue"/> <!--v-model:模板指令,双向绑定-->
<button @click="handleSubmit">提交</button> <!--鼠标点击,引发事件,方法为handleSubmit-->
</div>
<ul>
<!--使用组件,通过content 属性传递数值;@delete:监听子组件的变化-->
<todo-item v-for="(item, index) of list"
:key="index"
:content="item"
:index="index"
@delete="handleDelete"
></todo-item>
</ul>
</div>
<script> //创建一个组件:全局组件,一个组件就是一个vue实例
Vue.component('todo-item', {
props: ['content','index'], //接收传递的数值,index为下标
template: '<li @click="handleClick">{{content}}</li>',
methods: {
handleClick: function () {
//alert('clicked') //弹窗提示
this.$emit('delete',this.index) //向外触发名称为delete的事件,对应值为index,与父组件形成发布--订阅模式,
}
}
}) //定义一个局部组件
// var TodoItem = {
// template: '<li>{{item}}</li>'
// } new Vue({
el:"#root",
// components: {
// 'todo-item': TodoItem //使用局部组件时,需绑定
// },
data: {
inputValue: '',
list: []
},
//若没有定义模板template,则挂载点下所有的实例为模板
methods: {
handleSubmit: function () { <!--将提交的数据inputValue赋值到list中,并清空输入的值-->
this.list.push(this.inputValue)
this.inputValue = ''
},
handleDelete: function (index) {
this.list.splice(index,1) //删除list中对应下标index的数值
}
}
})
</script>
</body>
</html>
效果展示:
在页框内输入数据,点击提交,将会展示在列表中,并清空页框内的数据
鼠标点击列表数据,将会进行删除
Vue2--入门学习的更多相关文章
- vue2 入门 教程 单页应用最佳实战[*****]
推荐 vue2 入门 教程 -------- 看过其他的,再看作者的,很赞 vue2 入门 教程 单页应用最佳实战 : 具体在 https://github.com/MeCKodo/vue-tuto ...
- Vue2.0学习--Vue数据通信详解
一.前言 组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用.组件间如何传递数据就显得至关重要.本文尽可能罗列出一些常见的数据传递方式,如p ...
- vue入门学习(基础篇)
vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
- Retrofit 入门学习
Retrofit 入门学习官方RetrofitAPI 官方的一个例子 public interface GitHubService { @GET("users/{user}/repos&qu ...
- MyBatis入门学习教程-使用MyBatis对表执行CRUD操作
上一篇MyBatis学习总结(一)--MyBatis快速入门中我们讲了如何使用Mybatis查询users表中的数据,算是对MyBatis有一个初步的入门了,今天讲解一下如何使用MyBatis对use ...
随机推荐
- 关于微信小程序中如何实现数据可视化-echarts动态渲染
移动端设备中,难免会涉及到数据的可视化展示.数据统计等等,本篇主要讲解原生微信小程序中嵌入echarts并进行动态渲染,实现数据可视化功能. 基础使用 首先在GitHub上下载echarts包 地址: ...
- 【Javaweb】servlet二
servlet程序常见错误 1.url-pattern路径没有以 / 打头 2.servlet-name配置的值不存在 3.servlet-class标签的全类名配置错误 servlet-url地址如 ...
- java集合框架(三)ArrayList常见方法的使用
@[toc]## 一.什么是ArrarListArrayList是Java中的一个动态数组类,可以根据实际需要自动调整数组的大小.ArrayList是基于数组实现的,它内部维护的是一个Object数组 ...
- 洛谷P2579 [ZJOI2005]沼泽鳄鱼(矩阵快速幂,周期)
例题:现在豆豆已经选好了两座石墩Start和End,他想从Start出发,经过K个单位时间后恰好站在石墩End上.假设石墩可以重复经过(包括Start和End),他想请你帮忙算算,这样的路线共有多少种 ...
- 【ASP.NET Core】MVC过滤器:常见用法
前面老周给大伙伴们演示了过滤器的运行流程,大伙只需要知道下面知识点即可: 1.过滤器分为授权过滤.资源访问过滤.操作方法(Action)过滤.结果过滤.异常过滤.终结点过滤.上一次咱们没有说异常过滤和 ...
- 使用halo快速搭建应用文档中心
背景 之前我写了一篇,用gitbook搭建文档中心,gitbook是一款搭建博客的技术,是静态博客技术,不带后台管理系统.不带数据库,要发文章的话,是通过提供markdown文件,渲染成html,通过 ...
- tomact
常见的java相关的web服务器软件: *webLogic:oracle公司,大型的JavaEE服务器,支持所有的JavaEE规范,收费. *webSphere:IBM公司,大型的JavaEE ...
- RabbitMQ入门到进阶
1.MQ简介 MQ 全称为 Message Queue,是在消息的传输过程中保存消息的容器.多用于分布式系统 之间进行通信. 2.为什么要用 MQ 1.流量消峰 没使用MQ 使用了MQ 2.应用解耦 ...
- 使用jvm工具排查系统问题
java-jvm-tool Jstatd 远程连接(推荐) 不用重启项目 远程机配置 [demo@localhost jvmtest]$ vi jstatd.all.policy# 内容grant c ...
- MySQL运维16-双主双从读写分离
一.双主双从架构介绍 在MySQL多主多从的架构配置中和双主双从是一样的,学会了双主双从的架构部署,多主多从的配置也同样就回了.下面以双主双从作为示例演示.其中一个主机maste1用于处理所有写请求, ...