Vue知识点(学习笔记)

一、Vue快速上手

首先需要先下载vue.js:

https://v2.cn.vuejs.org/v2/guide/installation.html

1. 脚本引用

借助 script 标签直接通过src引用来使用 Vue:

<!DOCTYPE html>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="icon" href="纸飞机.png" type="image/png" />
    <title>玻璃瓶和纸飞机</title>
    <script type="text/javascript" src="vue.js"></script>
</head>

<body>

    <div id="demo">
        <h1>Hello,{{userName}}!</h1>
    </div>

    <div id="app">
        {{userName}}
    </div>

    <script type="text/javascript">
        Vue.config.productionTip = false

        new Vue({
            el: '#demo',
            data: {
                userName: "张三"
            }
        })
    </script>
</body>

</html>

二、Vue小知识

1. 简写

v-bind

单项数据绑定,v-bind:href=“xxx” 可以简写为 :href=“xxx”

<a :href="baiduUrl">点我调转百度</a>

v-model

双向数据绑定,只可以作用于表单元素,v-model:value可以简略书写为v-model=“xxx”

双向数据绑定:<input type="text"  v-model:value="xxx">
双向数据绑定:<input type="text"  v-model="xxx">

el和data的两种写法:

el

el用于指定哪一个容器需要被vue关联,第一种形式:

new Vue({
	el:"#app",
	data:{}
})

第二种形式(更灵活):

const v = new Vue({
	// el:"#app",不使用这种形式
	data:{}
})
v.$mount('#app') // 挂载容器 
data

data用于定义数据,第一种写法(对象式):

new Vue({
	el:"#app",
	data:{
		name:"张三"
	}
})

第二种写法(函数式,组件必须采用第二种,切记不能写成箭头函数):

new Vue({
	el:"#app",
	// data:{} 不使用这种形式
	data:function(){
		name:"张三"
	}
})

-------or--------

new Vue({
	el:"#app",
	// data:{} 不使用这种形式
	data(){
		name:"张三"
	}
})

2. MVVM模型

M:模型(Model),对应data中的数据
V:视图(View),页面视图DOM
VM:视图模型(ViewModel),Vue实例对象
在这里插入图片描述

3. Object.defineproperty方法

定义属性的方法
被定义的属性默认不可以被枚举(除非添加: enumerable:true )
默认属性值不可以被修改(除非添加: writable:true )
默认属性不可以被删除(除非添加: configurable:true )

<script type = "text/javascript" >
let person = {
	name:'张三',
	sex:'男',
}

Object.defineproperty(person,'age',{
	value:18.
	enumerable:true, // 允许属性可以枚举
	writable:true, // 允许属性可以被修改
	configurable:true // 允许属性被删除
})

console.log(person)
</script >

高级配置:

<script type = "text/javascript" >
let number = 18
let person = {
	name:'张三',
	sex:'男',
}

Object.defineproperty(person,'age',{
	//value:18.
	//enumerable:true, // 允许属性可以枚举
	//writable:true, // 允许属性可以被修改
	//configurable:true // 允许属性被删除

	// 当有地方读取person的age属性时,get函数就会被调用,切返回值就是age的值
    get(){
    	console.log('读取age属性')
    	return number
    }

	// 当有地方修改person的age数值时,set函数就会被调用,切会收到修改的age具体值
	set(value){
    	console.log('age属性被修改为:', value)
    	number = value
    }

})

4. Vue的数据代理

数据代理知识:通过一个对象代理对另一个队形中属性的操作(读/写)

<script type = "text/javascript" >
	let obj = { x:100 }
	let obj2 = { y:200 }

	Object.defineproperty(obj2,'x',{
		get(){
			return obj.x
		},
		set(value){
			obj.x = value
		}
	})
<script/>

vue将data中的data映射到_data,并且将_data中的属性一一在vm中创建相应属性,并进行赋值(get),set同理

<body>
	<div id = "app">
		<h2>学校名称:{{name}} </h2>
		<h4>地址:{{address}} </h4>
	</div>
</body>

	
<script type = "text/javascript" >
	Vue.config.productionTip = false // 阻止vue在启动时产生生产提示
	const vm = new vue({
		el:'#app',
		data:{
			name:'清华大学',
			address:'北京'
		}
	})
</script>

在这里插入图片描述

5. 事件处理

首先在页面上通过:v-on:click 为按钮绑定一个事件

<button v-on:click="showInfo($event,66)">点击</button>

并在Vue的methods中定义这个方法的执行


    <script>
        new Vue({
            el:'#index_top',
            data: {
                img: '../img/纸飞机.png'
            },
            methods:{
                shouInfo(event,number){
                    alert("您好~",number)
                }
            }
        })
    </script>

v-on:click 可以简写为 @click

6. 阻止默认事件

阻止调用默认事件(@click.prevent):

<a href="https://www.baidu.com" @click.prevent="showInfo">点我提示信息</a>
new Vue({
	el:'#app',
	data:{},
	methods:{
		showInfo(e){
			alert('您好!')
		}
	}
})

7. Vue中事件修饰符:

  1. prevent:阻止默认事件(常用);
  2. stop:阻止事件冒泡(常用);
  3. once:事件只触发一次(常用);
  4. capture:使用事件的捕获模式;
  5. self:只有event.target是当前操作的元素时才触发;
  6. passive:事件的默认行为立即执行,无需等待事件回调执行完毕;

8. 引入Element-Ui

  1. 首先在项目中打开终端控制台,输入以下命令:
    在这里插入图片描述
npm install element-ui@2.15.3
  1. 在main.js中引入:
    在这里插入图片描述
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玻璃瓶和纸飞机

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值