vue.js学习

Node(后端)中的 MVC 与 前端中的 MVVM 之间的区别

  • MVC 是后端的分层开发概念;

  • MVVM是前端视图层的概念,主要关注于 视图层分离,也就是说:MVVM把前端的视图层,分为了 三部分 Model, View , VM ViewModel

  • 为什么有了MVC还要有MVVM

Vue指令之v-bind的三种用法

1.直接使用指令v-bind

2.使用简化指令:

3.在绑定的时候,拼接绑定内容::title=“btnTitle + ‘, 这是追加的内容’”

Vue指令之v-on和跑马灯效果

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
	</head>
	<body>
		<div id="app">
			<input type="button" name="" id="" value="浪起来" @click="lang" />
			<input type="button" name="" id="" value="低调" @click="stop"/>
			<h4>{{msg}}</h4>
		</div>
		<script type="text/javascript">
			var vm=new Vue({
				el:'#app',
				data:{
					msg:'好好读书,别浪!!!!',
					intervalid:null//在data上定义 定时器ID
				},
				methods:{
					lang(){
//						console.log(this.msg)
						//定时器为空的时候才可以运作
						if(this.intervalid != null) return;
						this.intervalid = setInterval( () =>{
							var start = this.msg.substring(0,1)
							//获取第一个字符
							var end=this.msg.substring(1)
							//获取后面所有字符
							this.msg=end + start
							//重新拼接
						},400)
					},
					stop(){
							clearInterval(this.intervalid)
							//每次清除了定时器后,需要重新把intervalid 置为null
							this.intervalid = null;
						}
				}
			
			})
		</script>
	</body>
</html>

Vue指令之v-on的缩写和事件修饰符

事件修饰符

1.stop 阻止冒泡

2.prevent 阻止默认事件

3 .capture 添加事件侦听器时使用事件捕获模式

4.self 只当事件在该元素本身(比如不是子元素)触发时触发回调

5 .once 事件只触发一次

Vue指令之v-model和双向数据绑定

简易计算器案例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
	</head>
	<body>
		<div id="app">
			<input type="text" v-model="n1"  />
			
			<select v-model="opt">
				<option value="+">+</option>
				<option value="-">-</option>
				<option value="*">*</option>
				<option value="/">/</option>
			</select>
			<input type="text" v-model="n2" />
			<input type="button"value="=" @click="calc"/>
			<input type="text" v-model="result" />
			
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el:'#app',
				data:{
					n1:0,
					n2:0,
					result:0,
					opt:'+'
				},
				methods:{
					calc(){//计算的算法
						switch(this.opt){
							case '+':
							this.result=parseInt(this.n1) + parseInt(this.n2)//parseInt 把字符串转为整数
							break;
							case '-':
							this.result=parseInt(this.n1) - parseInt(this.n2)
				
							break;
							case '*':
							this.result=parseInt(this.n1) * parseInt(this.n2)
							
							break;
							case '/':
							this.result=parseInt(this.n1) / parseInt(this.n2)
							
							break;
						}
					}
				}
			})
		</script>
	</body>
</html>

在vue中使用样式

内联样式

1.将样式对象,定义到 data 中,并直接引用到 :style 中

<body>
		<div id="app">
			<h1 :style="style1">这是一个H1</h1>
			<h1 :style="[style1 ,style2]">这也是一个H1</h1> <!--运用两种样式时可以用数组绑定-->
		</div>
		<script type="text/javascript">
			var vm=new Vue({
				el:'#app',
				data:{
					style1:{color:'blue','font-weight': 200},
					style2:{'font-style':'italic'}
				}
			})
		</script>
	</body>

2.直接在元素上通过 :style 的形式,书写样式对象

<h1 :style="{color: 'red', 'font-size': '40px'}">这是一个善良的H1</h1>

使用class样式

先在定义好class样式
1.数组

<h1 :class="['red', 'thin']">这是一个邪恶的H1</h1>

2.三元表达式(较复杂)

<h1 :class="['red',flag?'active':'']">这是一个的H1</h1>

3.数组中嵌套对象

<h1 :class="['red',{'active':flag}]">这是一个H1</h1> 

2和3中的data如下

data:{	flag:false }

4.直接使用对象

<h1 :class="{red:true,active:true}">这是一个H1</h1>

Vue指令之v-for和key属性

1.迭代数组

<ul>
  <li v-for="(item, i) in list">索引:{{i}} --- 姓名:{{item.name}} --- 年龄:{{item.age}}</li>
</ul>

2.迭代数字

<p v-for="count in 10">这是第{{ count }}次循环</p>

3.迭代对象中的数组


	<!-- 循环遍历对象身上的属性 -->

    <div v-for="(val, key, i) in userInfo">{{val}} --- {{key}} --- {{i}}</div>


对于Key属性的运用,最好加上,以确保选中

<body>
    <div id="app">
        <label>ID:
            <input type="text" v-model="id">
        </label>
        <label>Name
            <input type="text"  v-model="name">
        </label>
        <label>
            <input type="button" value="Add" @click="add">
        </label>
        <!--注意v-for循环的时候,key属性只能使用number获取string-->
        <!--注意key在使用的时候,必须使用v-bind属性绑定的形式,指定key的值-->
        <!--在组件中,使用v-for循环的时候,或者在一些特殊情况中,如果v-for有问题,必须在使用v-for的同时,指定唯一的字符串/数字类型-->
        <p v-for="item in list" :key="item.id">
            <input type="checkbox">
            {{item.id}}----------------{{item.name}}
        </p>
    </div>
    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                id:'',
                name:'',
                list: [
                {id:1, name:'a'},
                {id:2, name:'b'},
                {id:3, name:'c'},
                {id:4, name:'d'},
                ]       
            },
            methods: {
                add()
                {
                    this.list.unshift({id:this.id, name:this.name})//unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
                }
            },
        })
    </script>
</body>

Vue指令之v-if和v-show

一般来说,v-if 有更高的切换消耗而 v-show 有更高的初始渲染消耗。因此,如果需要频繁切换 v-show 较好,如果在运行时条件不大可能改变 v-if 较好。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值