文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Vue基础之MVVM,模板语法和数据绑定

2024-04-02 19:55

关注

1. Vue概述

Vue官网

英文官网: https://vuejs.org/

中文官网: https://cn.vuejs.org/

MVVM架构模式

MVVM简介

MVVM 由 M:Model 模型,V:View 视图 ,VM:ViewModel 视图模型(Vue实例对象) 三部分构成,Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。

在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。

ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。

MVVM模式图

Vue简介

Vue特点

2. 初识Vue


  注意区分js表达式和js代码(语句)
  1、表达式:一个表达式会产生一个值,可以放在任何一个需要值的地方
  	(1). a
  	(2). a+b
  	(3). demo(1)    //函数调用表达式
  	(4). x === y ? 'a' : 'b'      //三元表达式
  2、js代码(语句)
  	(1). if(){}
  	(2). for(){}

<!-- 准备好一个容器 -->
<div id="demo">
	<h1>Hello,{{name.toUpperCase()}},{{address}}</h1>
</div>
<script type="text/javascript" >
	Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
//创建Vue实例
	new Vue({
		el:'#demo', //el用于指定当前Vue实例为哪个容器服务,值通常为css选择器字符串。
		data:{ //data中用于存储数据,数据供el所指定的容器去使用,值我们暂时先写成一个对象。
		name:'bilibili',
		address:'上海'
		}
	})
</script>

3. 模板语法

Vue模板语法有2大类:

1、插值语法:

2、指令语法:


<!-- 准备好一个容器-->
<div id="root">
	<h1>插值语法</h1>
	<h3>你好,{{name}}</h3>
	<hr/>
	<h1>指令语法</h1>
	<a v-bind:href="address.url.toUpperCase()" x="hello">点我去{{address.name}}1</a>
	<a :href="address.url" x="hello">点我去{{address.name}}2</a>
</div>
<script type="text/javascript">
	Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
	new Vue({
		el:'#root',
		data:{
			name:'月见',
			// 可以设置成多级结构
			address:{
				name:'百度',
				url:'http://www.baidu.com',
			}
		}
	})
</script>

4. 数据绑定

Vue中有2种数据绑定的方式:

1.单向绑定(v-bind)数据只能从data流向页面。

2.双向绑定(v-model)数据不仅能从data流向页面,还可以从页面流向data。

备注:


<div id="root">
	<!-- 普通写法 -->
	单向数据绑定:<input type="text" v-bind:value="name"><br/>
	双向数据绑定:<input type="text" v-model:value="name"><br/>
	<!-- 简写 -->
	单向数据绑定:<input type="text" :value="name"><br/>
	双向数据绑定:<input type="text" v-model="name"><br/>
	<!-- 下面代码是错误的,因为v-model只能应用在表单类元素(输入类元素)上 -->
	<h2 v-model:x="name">你好啊</h2> 
</div>
<script type="text/javascript">
	Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
	new Vue({
		el:'#root',
		data:{
			name:'bilibili'
		}
	})
</script>

5. el与data的两种写法

1、el有2种写法new

2、data有2种写法

3、一个重要的原则:

由Vue管理的函数,一定不要写箭头函数,一旦写了箭头函数,this就不再是Vue实例了,而是window。


<div id="root">
	<h1>你好,{{name}}</h1>
</div>
<script type="text/javascript">
	Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
	//el的两种写法 -----------
	const v = new Vue({
		//el:'#root', //第一种写法
		data:{
			name:'bilibili'
		}
	})
	console.log(v)
	v.$mount('#root') //第二种写法 
	// 例:
	setTimeout(() => {
		v.$mount('#root')
	},1000);       //定时器:页面过1秒后再显示vue效果
// ---------------------
	//data的两种写法
	new Vue({
		el:'#root',
		//data的第一种写法:对象式
		
		//data的第二种写法:函数式 
		// 把data写成一个函数,且这个函数必须要返回一个对象,函数式写法一般用于组件和框架
		// 注意:此函数不是自己调用,是Vue调用的
		data(){
			// console.log('@@@',this) //此处的this是Vue实例对象(data为普通函数时,否则this指window)
			return{
				name:'bilibili'
			}
		}
	})
</script>

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯