前端知识-vue-1、基本语法

一、VUE基本语法
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

1、安装vue

        方式一:直接使用script标签引入

                <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

        方式二: npm安装

                在用 Vue 构建大型应用时,推荐使用 NPM 安装:npm install v

2、vue的指令 和 插值

        {{ value}}:插值表达式

        v-text:填充纯文本内容
        v-html:填充html
        v-pre:填充原始数据

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
	</head>
	<body>
		
		<div id="app">
		  <p>{{age}}</p>
		  <div v-text="msg">123</div>
		  <div v-html="desc"></div>
		  <div v-pre>{{desc}}</div>
		</div>
		<script type="text/javascript">
		  var vm = new Vue({
		    el:"#app",
		    data:{
		      msg:"hello qiangqiang",
		      age:18,
		      desc:'<h1>guaniu<\h1>'
		   }
		 })
		</script>
	</body>
</html>

页面:

 

3、属性绑定

        属性绑定:使用v-bind:属性 也可以简写为 :属性

示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
	</head>
	<body>
		
		<div id="app">
			<!-- <a v-bind:href="url">{{name}}</a> -->
			<!-- 属性绑定:使用v-bind:属性 也可以简写为 :属性 -->
			<a :href="url">{{name}}</a>
		</div>
		<script type="text/javascript">
		  var vm = new Vue({
		    el:"#app",
		    data:{
			  name:"百度",
		      url:"http://www.baidu.com",
		   }
		 })
		</script>
	</body>
</html>

页面:

 

 

 4、通过:style,绑定CSS样式

 示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
	</head>
	<body>
		
		<div id='app' :style="boxStyle">
			box and python
		</div>
		<script type="text/javascript">
		  var vm = new Vue({
		    el:"#app",
		    data:{
			  // 通过style绑定css样式
			  boxStyle: {
			  	color: "red",
			  	fontSize: "30px"
			  }
		   }
		 })
		</script>
	</body>
</html>

页面:

5、通过:class,绑定CSS样式

 示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
		<style type="text/css">
			.box1 {
				width: 200px;
				height: 200px;
				background: #00AAFF;
			}
		</style>
		
	</head>
	<body>
		
		<div id='app'>
			<!-- 数组形式绑定class -->
			<div :class="[boxCls]">
				box11111 and python
			</div>
		</div>
		<script type="text/javascript">
		  var vm = new Vue({
		    el:"#app",
		    data: {
				boxCls: 'box1'
				}
		 })
		</script>
	</body>
</html>

页面:



 6、事件绑定

v-on:为元素绑定一个事件,绑定点击事件:
        v-on:click = '指定执行的方法'
        v-on:可以简写为 @:@click

 示例:


<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
		<style type="text/css">
			.box1 {
				width: 200px;
				height: 200px;
				background: #00AAFF;
			}
			.bj {
				width: 200px;
				height: 200px;
				background: #FF0000;
				border: solid 2px #000000;
			}
		</style>
		
	</head>
	<body>
		
		<div id='app'>
			<!-- 对象形式绑定class -->
			<div :class="{box1:isbox1,bj:isbj}">
				box11111 and python
				
			</div>
			<input type="button" value="更改样式按钮" @click="changeStyle()"/>
		</div>
		<script type="text/javascript">
		  var vm = new Vue({
		    el:"#app",
		    data: {
				isbox1:true,
				isbj:false
				},
			methods:{
				changeStyle(){
					this.isbox1=!this.isbox1
					this.isbj=!this.isbj
				}
				}
		 })
		</script>
	</body>
</html>

页面:

 

7、vue的双向数据绑定

v-model:页面修改数据会变,数据改变,页面也会改

           事件监听
view -----> vm ------>model
   数据绑定
view <----- vm <------model

 示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
		
	</head>
	<body>
		
		<div id="app">
		  <div v-text="msg">123</div>
		 <div>
		   <input type="text" v-model="msg">
		 </div>
		</div>
		<script type="text/javascript">
		  var vm = new Vue({
		    el:"#app",
		    data:{
		      msg:"hello 瓜牛"
		   }
		 })
		</script>
	</body>
</html>

页面:

 

8、分支语句

通过条件来控制元素是否渲染到页面
        v-if(v-else-if):判断条件成立时显示
        v-else: 条件不成立时显示
        v-show:控制元素是否显示到页面(本质就是display属性的控制)

 示例( v-if,v-else-if,v-else):

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>

	</head>
	<body>
		<div id="app">
			  <h1 v-if='result=="success"' style="color: #55AA7F;">
				用例id:{{caseId}}
				名称:{{caseName}}
				结果:{{result}}
			</h1>
			<h1 v-else-if='result=="error"' style="color: #ffaa00;">
				用例id:{{caseId}}
				名称:{{caseName}}
				结果:{{result}}
			</h1>
			<h1 v-else='result=="fail"' style="color: #ff0000;">
				用例id:{{caseId}}
				名称:{{caseName}}
				结果:{{result}}
			</h1>
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data: {
					caseId: "case1",
					caseName: "用例名称",
					result: 'fail'
				}
			})
		</script>
	</body>
</html>

页面:

 

示例(v-show):

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			.box {
				width: 600px;
				height: 400px;
				margin: 200px auto;
				box-shadow: 0 0 5px #00AAFF;
				background: #d3d2ce;
			}
		</style>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<!-- 通过 v-show控制元素的显示和隐藏,本质上是通display去实现的-->
			<div class="box" v-show="show"></div>
			<button type="button" @click="show=!show">按钮1</button>
		</div>

		<script type="text/javascript">
			var vm = new Vue({
				el: '#app',
				data:{
					show:false
				}
			})
		</script>
	</body>
</html>

页面:

 

 

9、遍历语句

        v-for:遍历数组
                {{name}}
        v-for:遍历对象
                {{key}}{{value}}

 示例(遍历数组):

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>

	</head>
	<body>
		<div id="app">
			 <!-- 使用v-for时,最好给元素添加一个key属性(key属性的值要是唯一的),方便vue去跟踪和维护这个节点中的数据 -->
			<h1 style="color: #55AA7F;" v-for="(item,index) in cases " :key='index'>
				遍历出来的数据值:{{item}}------数据的索引:{{index}}
			</h1>
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data:{cases: [
					{caseId: "case1",
					caseName: "用例名称",
					result: 'fail'},
					{caseId: "case1",
					caseName: "用例名称",
					result: 'fail'},
					{caseId: "case1",
					caseName: "用例名称",
					result: 'fail'}
				]}
			})
		</script>
	</body>
</html>

页面:

 示例(遍历对象):

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>

	</head>
	<body>
		<div id="app">
			<h1 style="color: #55AA7F;" v-for="(value,key) in cases " >
				遍历出来的数据值:{{value}}------数据key:{{key}}
			</h1>
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data:{cases:{case:123,
				title:"haha",
				res:"fail"}}
			})
		</script>
	</body>
</html>

页面:

 10、v-for和v-if结合使用

 示例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>

	</head>
	<body>
		<div id="app">
			<h1 style="color: #55AA7F;" v-for="(item,index) in cases " :key='index'>
				<!-- 遍历出来的数据值:{{item}}------数据的索引:{{index}} -->
				<span v-if="item.result=='success'" style="color: #55ff7f;">{{item}}</span>
				<span v-else-if="item.result=='fail'" style="color: #ff5500;">{{item}}</span>
				<span v-else-if="item.result=='error'" style="color: #ffaa00;">{{item}}</span>
				<span v-else style="color: #000000;">{{item}}</span>
			</h1>
		</div>
		<script type="text/javascript">
			var vm = new Vue({
				el: "#app",
				data: {
					cases: [{
							case_id: 1,
							title: "用例001",
							result: "success"
						},
						{
							case_id: 1,
							title: "用例002",
							result: "error"
						},
						{
							case_id: 1,
							title: "用例003",
							result: "fail"
						},
						{
							case_id: 1,
							title: "用例003",
							result: "aa"
						}
					]
				}
		
		
			})
		</script>
	</body>
</html>

页面:

 未完待续,点个关注,持续更新。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值