vue.js

最近项目中要用到vue.js,开始学习一下,初步感觉以前AngularJS有很相似之处:

刚写了几个demo,说一下自己对vue的理解:

1,触发事件写在html上面

2,然后在script上面先绑定上哪个事件,el方法

3,data事件是这个方法的属性,

4,methods写方法

然后几个合为一个整体,和angularjs差不多,只不过没有那个看起来紧凑,灵活。不过会比那个简单吧,感觉就跟拼积木一样,拼好了,就是这样,典型西方逻辑思维。

1,直接下载vue.js,和jquery一样,直接引入 <script src="vue.js"></script>

2,刚才写了一个demo,死活出不来想要的答案,最后发现程序还是自下向上执行,要把vue的代码写到下面就可以了

demo1:

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <script src="vue.js"></script>
 6 </head>
 7 <body>
 8 
 9 <div id="app">
10 {{ message }}
11 </div>
12 
13 
14 <script>
15 new Vue({
16 el: '#app',
17 data: {
18 message: 'Hello Vue.js!'
19 }
20 })
21 </script>
22 </body>
23 </html>

 3,这里我们遇到新东西。你看到的 v-if 特性被称为指令。指令带有前缀 v-,以指示它们是 Vue.js 提供的特殊特性。并且如你所想象的,它们会对绑定的目标元素添加响应式的特殊行为。继续在控制台设置 exampleVM2.greeting 为 false,你会发现 “Hello!” 消失了。

4,可以使用管道符 ,这个很有意思,可以在前台做筛选

5,双向绑定,在我看来就是一个值使用了两次 

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="vue.js"></script>
</head>
<body>
	
	<div id="app2">
		<p>{{ message }}</p>
		<input v-model="message">
	</div>
	
<script>



new Vue({

	el:'#app2',
	
	data:{
		message:'hello vue.js'
	}

})


</script>
</body>
</html>

  

 6,循环数据

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="vue.js"></script>
</head>
<body>
	
<div id="app">
  <ul>
    <li v-for="todo in todos">
      {{ todo.text }}
    </li>
  </ul>
</div>
	
<script>

new Vue({
  el: '#app',
  data: {
    todos: [
      { text: 'Learn JavaScript' },
      { text: 'Learn Vue.js' },
      { text: 'Build Something Awesome' }
    ]
  }
})

</script>

</body>
</html>

7.如何将数据第一条循环出来?????

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="vue.js"></script>
</head>
<body>
	
<div id="app">
	<ul>
		<li v-for="todo in todos">
			{{ todo.text }}
		</li>
	</ul>
</div>
	
<script>

new Vue({
	el:'#app',
	data:
	{
		todos:[
			{ "test": "Brett", "text":"McLaughlin" },
		]
	}
})

</script>

  

 8,控制页面字符串

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="vue.js"></script>
</head>
<body>
	
<div id="app">
	<p>{{ message }}</p>
	<button v-on:click="reverseMessage">Reverse Message</button>
</div>
	
<script>

new Vue({
	el:'#app',
	data:{
		message:'Hello vue.js!',
	},
	methods:{
		reverseMessage:function(){
			this.message = this.message.split('').reverse().join('');
		}
	}
})


</script>




</body>
</html>

  

 9,综合

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="vue.js"></script>
</head>
<body>
	
<div id="app">
	<input v-model="newTodo" v-on:keyup.enter="addTodo">
	<ul>
		<li v-for="todo in todos">
			<span>{{ todo.text }}</span>
			<button v-on:click="removeTodo($index)">X</button>
		</li>
	</ul>
</div>
	
<script>

new Vue({
	el:'#app',
	data:{
		newTodo:'', //input 框内默认显示元素
		todos:[
			{text:'Add some todos'}  //开始默认出现的字
		]
	},
	methods:{
		addTodo:function(){
			var text = this.newTodo.trim()
			if(text){
				this.todos.push({ text:text })
				this.newTodo = ''
			}
		},  //逗号必须存在
		removeTodo:function(index){
			this.todos.splice(index,1)
		}
	}
})


</script>




</body>
</html>

  

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="vue.js"></script>
</head>
<body>	
<div class="static" v-bind:class="{ 'class-a': isA, 'class-b': isB }">333</div>
	
<script>

var vm = new Vue({
 el: '.static',  //这里应该加上,否则不显示
 data: {
  isA: true,
  isB: false
}
})

</script>

</body>
</html>

  

 10条件渲染

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="vue.js"></script>
</head>
<body>	
<table id="app">
    <tr>
        <td v-for="x in test1">{{ x.arr1 }}</td>
        <td v-for="y in test1">{{ y.arr2 }}</td>
    </tr>
</table>

	
<script>

var vm=new Vue({
	el:'#app',
	data:{
		test1:{
			x:
			{
			arr1:"[beike,hanmu]"
			},
			y:
			{
			arr2:"[shimin,shiye]"
			}
		}
	}
})

</script>

</body>
</html>

  

 11,判断值是否在里面

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="vue.js"></script>
</head>
<body>	
<table id="app">
    <tr>
        <td v-for="x in test1">{{ x.arr1 }}</td>
        <td v-for="y in test1">{{ y.arr2 }}</td>
    </tr>
</table>

	
<script>

var vm=new Vue({
	el:'#app',
	data:{
		test1:{
			x:
			{
			arr1:"[beike,hanmu]"
			},
			y:
			{
			arr2:"[shimin,shiye]"
			}
		}
	}
})

</script>

</body>
</html>

  

12,

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="vue.js"></script>
</head>
<body>	

<div id="example">
	<button v-on:click="greet">Greet</button>
</div>

	
<script>

var vm = new Vue({

	el:'#example',
	data:{
		name:'vue.js'
	},
	methods:{
		greet:function(event){
			alert('hello' + this.name + '!');
			alert(event.target.tagName)
		}
	}

})
vm.greet();
</script>

</body>
</html>

  

二,条件渲染还没有理解

  

原文地址:https://www.cnblogs.com/xiaoxiaomengxiangjia/p/5359451.html