Vue2-vue基础
来源:
语法
默认都是在data
属性里定义的,所有的内容都要被根节点(空的div即可)包含起来。
- 文本绑定:
{{ msg }}
,另一种写法为v-text="msg"
- 循环:
v-for="msg in msgs"
,索引为v-for="(msg,index) in msgs"
- 判断:
v-if=""
,用于是否展示该DOM元素 - 属性绑定:
v-bind:属性="msg"
,简写为:属性="msg"
- 类绑定:
v-bind:class="{'classA':flagA, 'classB':flagB, ...}"
,flag可以是一个表达式 - 样式绑定:
v-bind:style="{'color': msgA, 'with': msgB, ...}"
- 类绑定:
- 事件绑定:
v-on:click="getMsg()"
,简写为@click="getMsg()"
,需要在methods
属性里定义 - HTML绑定:
v-html="msg"
- 双向数据绑定:
v-model='msg'
- 必须在表单里使用
- 该语法会直接把表单控件的值赋值给
msg
- 获取DOM节点:vue可以用
ref
属性获取DOM节点,<div ref="divA"></div>
,在vuemethods
属性里可以用this.$refs.divA
来过去该DOM节点。 - methods里获取data里的信息,使用
this.msg
- 获取事件对象:
<div data-one="" @click="eventFn($event)"></div>
- 获取时间对象只需要在
methods
的eventFn(e){ console.log(e); console.log(e.srcElement); }
,其中e.srcElement
就是DOM节点。 - 可以用来获取自定义数据
data-one
,即e.srcElement.dataset.one
e.keyCode
可以区分是键盘的哪一个键
- 获取时间对象只需要在
- 和
data
与methods
同级的mounted
属性,表示的是vue在每次页面刷新都会执行的函数 - 结构化组件
- 引入组件:
import Com from "...."
- 挂载组件: 与data同级的
components
属性components: { 'v-com': Com }
- 使用组件:
<v-com></v-com>
- 引入组件:
- 声明周期函数:
mounted
和beforeDestroy
用途较多- 具体周期为: 【官网】Vue声明周期
- 请求数据的方式:
需要先引用模块:import ...,然后再使用:Vue.use(模快);- vue-resource 官方提供
import VueResource from 'vue-resource'; Vue.use(VueResource); ... this.$http.get(url).then((response)=>{}, (err)=>{});
- axios
import Axios from 'axios'; // 不需要use ... Axios.get(url).then((response)=>{}).catch((error)=>{});
- fetch-jsonp
- vue-resource 官方提供
- 父子组件传值
- 父组件在子组件上绑定属性
- 子组件在自己的props数组里接入绑定属性
- 不仅可以传值,也可以传方法,也可以用this传父组件实例对象
- 验证传值合法性
props: { propA: String, propB: Number }
- 互相主动获取数据和方法
- 父获取子
1. <div ref="prop"></div> 2. $refs.header.prop
1. this.$parent.prop
- 非父子组件传值
- 采用父子组件传值进行逻辑传递
- 广播形式,分三步:
- 新建js文件,创建Vue实例并暴露
import Vue from ''; var OneVue = new Vue(); export default OneVue;
- 广播组件发送
import OneVue from ...; ... OneVue.$emit('id-msg', msg);
- 监听组件接收,一般放在
mounted
周期中监听。
import OneVue from ...; ... OneVue.on('id-msg', (msg)=>{}));
作者:oxy-blogs
声明:文章如有问题请联系本人,侵权必删,欢迎转载,但请标明作者与出处