• 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>
    

      

    二,条件渲染还没有理解

      

  • 相关阅读:
    Spring面试,IoC和AOP的理解
    WEB打印(jsp版)
    Spring事务管理机制的实现原理-动态代理
    spring面试题
    oracle PLSQL基础学习
    oracle创建表空间
    WM_CONCAT字符超过4000的处理办法
    Oracle 数据泵使用详解
    Oracle 数据泵详解
    linux下启动oracle
  • 原文地址:https://www.cnblogs.com/xiaoxiaomengxiangjia/p/5359451.html
Copyright © 2020-2023  润新知