Vuejs——前端学习日记(二)

Vuejs——前端学习日记(二)


通过之前对Vuejs进行简单项目的学习,让我对Vuejs有了初步的认识,接下来是进一步的了解。

Vue列表显示

与之前看到的声明的简单变量message,name相比,数据列表是一个更加复杂的数据,所以在显示方面也会有所不同。在HTML代码中,我们会用v-for指令来显示列表。
如果用之前那样的方法来显示Vue列表的话,也可以将列表的内容展示出来:

<div id='app'>
	<h1>{{movies}}</h1>
</div>

在这里插入图片描述
但是这样的展示是将整个列表转换为字符串的形式来展示出来。正确的显示方式应该是使用v-for来解决:

<div id='app'>
	<h1>{{message}}</h1>
	<ul>
		<li v-for='item in movies'>{{item}}</li>
	</ul>
</div>

在这里插入图片描述
有了这种方式,我们也不需要在JavaScript中完成DOM拼接的相关操作了,而且它还是响应式的,当列表中的数据发生改变时,界面会自动改变。

新的指令和属性

新的属性:methods,该属性用于在Vue对象中定义方法。
新的指令:@click,该指令用于监听某个元素的点击事件,并且需要指定当发生点击时,执行的方法(方法通常是methods中定义的方法)

关于methods,现在可以知道是Vue对象中的一个属性,是继el、data后第三个属性:

<script>
	const app = new Vue({
		el: '#app',
		data: {
			data //数据
		},
		methods: {
			func: function() {
				//定义函数
				this.data;
			}
		}	
	})
</script>

在methods中可以定义多个函数,而如果想要调用Vue对象里的数据信息时,不可以直接调用,这样的话函数会从全局中寻找变量导致报错,正确调用Vue对象里的数据时应该用app.data或this.data(更推荐)。

关于指令,在一个计数器的案例中可以将@click指令展示出来:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    <h1>当前计数  {{counter}}</h1>
    <button v-on:click="counter++">+</button>
    <button v-on:click="counter--">-</button>
</div>

<script src="../js/vue.js"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            counter: 0
        },
        methods: {
            add: function () {
                console.log('add被执行');
                this.counter++;
            },
            subtraction: function () {
                console.log('sub被执行');
                this.counter--;
            }
        }
    })
</script>

</body>
</html>

该案例包含两个按钮:+和–,通过点击两个按钮可以增加计数或减少计数:
在这里插入图片描述
其中

<button v-on:click="counter++">+</button>

v-on指令用来监听事件,这里的监听事件是click,而由于此案例功能实现只是简单的加数减数,所以可以直接在click后实现功能counter++和counter- -。此外也可以通过下列代码来完成功能的实现:

<div id="app">
    <h1>当前计数  {{counter}}</h1>
    <button v-on:click="add">+</button>
    <button v-on:click="sub">-</button>
</div>

<script src="../js/vue.js"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            counter: 0
        },
        methods: {
            add: function () {
                console.log('add被执行');
                this.counter++;
            },
            sub: function () {
                console.log('sub被执行');
                this.counter--;
            }
        }
    })
</script>

后续

先写到这,晚上再来更新后续Vue中的MVVM。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值