Vue -- API学习 (一)

作为一个即将毕业的大学生,非常荣幸的进入了一个中型IT公司去做JAVA实习生。中型公司大家应该都知道,公司内部结构已经差不多很稳定了,每个人都有自己的一部分进行工作。我更荣幸的是到了一个创业部门,在那里有很多大牛,有更多我需要学习的知识。学习Java开发也有将近一年多了,每次看到别人前端的页面我都感动非常的激动,有学习的冲动。现在机会来了,部门学习uni - app,我也很快的上手了,并且完成了工作任务。看到uni - app基于vue来实现的,所以我找到时间,来学习我梦寐以求的前端知识。前几天基础知识学习的差不多了,所以开始进阶框架,vue是我的首选,写Vue的学习API,记录自己的学习之路。加油!!!

一、Vue定义

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

二、Vue的引入

        1. 使用 <script src=""> 方式引入vue

        2.创建vue容器 <div id="app"></div>

        3.创建vue对象 var vew = new Vue({});

        4.绑定vue容器 el: "#app"

        5.定义数据  data: { content: ' ' } 

        6.绑定数据  {{content}}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>hello world</title>
		<script src="../vue.js"></script>
	</head>
	<body>
		<div id="app">{{content}}</div>
		<script>
			var vue = new Vue({
				el:'#app',
				data:{
					content: 'Hello World!'
				}
			});
		</script>
	</body>
</html>

运行结果:

三、Vue基础

1.数据绑定 插值方式 {{content}}

<div id="app">{{content}}</div>
<script>
	//使用vue的方式
	var vue = new Vue({
		el:'#app',
		data:{
			content: 'Hello World!'
		}
	});
</script>

运行结果:

2.条件语句  v-if="  "

<div id="app">
	<span v-if="isDisplay">显示出来了</span>
</div>
<script>
	var vue = new Vue({
		el:'#app',
		data:{
			isDisplay: true
		}
	});
</script>

运行结果:

isDisplay=true                   isDisplay=false,不会显示

3.循环语句  v-for=""

<div id="app">
	<ul>
		<li v-for="(item,index) in list">index = {{index}},key = {{item}}</li>
	</ul>
</div>
<script>
	var vue = new Vue({
	    el:'#app',
	    data:{
			list: [1,2,3,4,5,6,7]
		}
	});
</script>

运行结果:

4.input标签数据绑定  v-model=" "

<div id="app">
	<input type="text" v-model="content"/><button v-on:click="handleClick">提交</button>
</div>
<script>
	var vue = new Vue({
		el:'#app',
		data:{
			content: ''
		},
		methods: {
			handleClick: function(){
				console.log(this.content);
			}
		}
	});
</script>

数据的双向绑定:

①页面向vue传数据

  输入          打开控制台,查看日志  

②vue向页面传数据

  打开浏览器F12,改变后台的content           页面体现:

5.添加事件监听器   v-on:  简写  @

      看4中的例子,里面有。

6.绑定 v-bind:  简写 

四、Vue组件

注意:驼峰定义组件名称 TodoList     使用的时候使用-来分割  <todo-list></todo-list>

1.全局组件 Vue.component({ template: "" })

①全局组件定义

<script>
    Vue.component("TodoList",{
	    template: "<span>自定义组件</span>"
    });
    var vue = new Vue({
	    el: '#app'
    })
</script>

②组件使用

<div id="app">
	<todo-list></todo-list>
</div>

运行结果:

2.局部组件 var TodoList = { template: " " }

①局部组件定义

   components: {  新组件名称:局部组件  }

<script>
	var TodoList = {
		template: "<span>自定义组件</span>"
	};
			
	var vue = new Vue({
		el: '#app',
		components:{
		    List: TodoList
		}
	})
</script>

②组件使用

<div id="app">
	<list></list>
</div>

3.父组件向子组件传值 props

①绑定数据    v-bind:content="text"

②组件定义数据     props:['content']

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>hello world</title>
		<script src="../vue.js"></script>
	</head>
	<body>
		<div id="app">
		    <list v-bind:content="text"></list>
		</div>
		<script>
			var TodoList = {
				props:['content'],
				template: "<span v-on:click='test'>自定义组件</span>",
				methods: {
					test: function(){
						alert(this.content);
					}
				}
			};
			
			var vue = new Vue({
				el: '#app',
				components:{
					List: TodoList
				},
				data: {
					text: '你说什么啊'
				}
			})
		</script>
	</body>
</html>

运行结果:

4.子组件向父组件传值 $emit 

①子组件点击事件  template: "<span v-on:click='test'>change</span>"      子组件上的方法

②子组件点击事件声明监听器,声明传入参数   test: function(content){  this.$emit("change",'子组件数据'); }

③父组件定义监听器   <list @change="handleChange"></list>     必须在父组件的子组件上使用

④父组件实现监听器方法   handleChange: function(content){ this.content = content; }     父组件中的方法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>hello world</title>
		<script src="../vue.js"></script>
	</head>
	<body>
		<div id="app">
			<span>这里将出现内容:{{content}}</span><br>
		    <list @change="handleChange"></list>
		</div>
		<script>
			var TodoList = {
				template: "<span v-on:click='test'>change</span>",
				methods: {
					test: function(content){
						this.$emit("change",'子组件数据');
					}
				}
			};
			
			var vue = new Vue({
				el: '#app',
				components:{
					List: TodoList
				},
				data: {
					content: ''
				},
				methods: {
					handleChange: function(content){
						this.content = content;
					}
				}
			})
		</script>
	</body>
</html>

运行结果:

          

           Vue的入门已经完成,接下来开始学习里面的一个个核心的组件,继续加油,争取能使用的非常数量,掌握一套前端知识。加油!加油!!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值