Vue学习笔记(3. 基本语法,数据绑定,指令)

1. 基本语法

vue2的基本语法如下:

<html>
<head>
<title>testVUE</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>

<body>
	<div id="app">
		模板语法:{
   
   {test_data1}}<br/>
		属性绑定:<input type="text" v-bind:value="test_data1" /><br/>
		双向绑定:<input type="text" v-model="test_data1" /><br/>
		事件绑定:<button v-on:click="testClick">测试</button>
	</div>
</body>
<script type="text/javascript">
	var testVue = new Vue({
		el:'#app',
		data:{
			test_data1:0
		},
		methods:{
			testClick:function(){
				this.test_data1+=1
			}
		}
	})

</script>
</html>

详解:

效果展示

初期化

点击测试按钮(模板语法:双大括号, v-bind,v-model都随着test_data1的值+1变更 )

v-model双向绑定的值输入5(data值随双向绑定值变更,双大括号, v-bind随data变更)

v-bind属性绑定的值变更(data未发生变化,因此双大括号, v-model也未变更)

2. 模板语法(双大括号 { {值}})

双大括号会在页面输出data的内容test_data1,页面显示会随test_data1值的变更而变更

3. 属性绑定v-bind:属性 *简写 :属性

v-bind绑定标签的属性,可以是value,hidden,disabled,style,class等。

页面内容随data值变更,data的值不随页面v-bind属性值变更

4. 事件绑定(v-on:事件*简写 @事件

v-on绑定标签的事件,可以是click等。

5. 双向绑定(v-model

可以在input,textarea,select上使用

v-model.lazy 不立刻同步数据,失去焦点时同步

v-model.trim 过滤数据首伟空格

页面内容随data值的变更而变更,data值也随页面内容变更而变更。

6. 条件渲染(v-if

可以同v-else-if 和 v-else 同时使用,必须在v-if之后

测试代码

<template>
  <div class="hello">
    <div v-if="hasHtml">
			模板语法:{
   
   {test_data1}}<br/>
    </div>
    事件绑定:<button v-on:click="testClick()">测试</button>
  </div>
</template>
<script>
export default {
  name: 'HelloWorld',
  data(){
    const test_data1=0
    const hasHtml=false
    return {
      test_data1,
      hasHtml
    }
  },
  methods:{
    testClick:function(){
      if (this.hasHtml) {
        this.hasHtml = false
      } else {
        this.hasHtml = true
      }
    }
  }
}
</script>

hasHtml=false,不显示(模板语法div),页面源码没有代码

点击测试hasHtml=true,显示(模板语法div),页面源码有代码

 

7. 条件渲染(v-show

测试代码

<template>
  <div class="hello">
    <div v-show="hasHtml">
			模板语法:{
   
   {test_data1}}<br/>
    </div>
    事件绑定:<button v-on:click="testClick()">测试</button>
  </div>
</template>
<script>
export default {
  name: 'HelloWorld',
  data(){
    const test_data1=0
    const hasHtml=false
    return {
      test_data1,
      hasHtml
    }
  },
  methods:{
    testClick:function(){
      if (this.hasHtml) {
        this.hasHtml = false
      } else {
        this.hasHtml = true
      }
    }
  }
}
</script>

 hasHtml=false,不显示(模板语法div),页面源码有代码

 点击测试hasHtml=true,显示(模板语法div),页面源码有代码

8. 列表渲染(v-for

注释:v-for和v-if不推荐同时标记同一个标签,v-for比v-if有更高优先级,每个对象都会走v-if判断

(1). 循环对象

代码(vue2, vu3通用)

 画面初期化(没有数据)

 点3次前追加(unshift)

 点3次后追加(push)

 

 点前删除(shift)

点后删除(pop)

 

点排序(sort)

 

(2). 循环下标

代码

 页面初期显示

点击按钮后(显示下标和值)

 

9. 指令(v-html

代码

 初期化(div没有内容不显示)

 点击替换(追加了标签)

 

页面代码(替换的是v-html标记的标签,内部的html)

10. 指令(v-text

代码

 

页面初期显示(v-text无法解析html元素)

 

 页面代码

猜你喜欢

转载自blog.csdn.net/m0_65939803/article/details/129805514