天天看点

vue基础知识

vue基础回顾

指令:指令是vue内置属性

v-model

数据双项绑定,用在input元素中.input的值发生改变会影响js中数据模型的值,数据模型发生改变会影响页面。

v-for(item,index)

,顾名思义循环。那个元素需要循环生成给那个加。v-for能遍历数组,对象,数字,字符串.第一个参数是遍历中的每个元素,第二个参数是索引。

v-on

绑定事件,全等于

@

;例如

v-onclick='fn' @click="fn"

v-bind

动态绑定属性,全等于

:

; 例如 v-bind:src=“变量” === :src=“变量”

v-cloak

页面中有小胡子语法,页面加载是从上到下。没有加载js的时候会出现{{}}

在样式中让包含这个属性的元素display:none;就会屏蔽掉,当vue记载完毕后就会自动变为block

axios

ajax请求要下载相应的包,语法

axios.get('url').then(()=>{}),

时间修饰符 .stop阻止冒泡、.prevent 阻止浏览器默认事件、.capture 变为捕获模式、.self 只有点自己的的时候才执行 .once触发一次事件 .passive 滚动事件

filters

Vue允许你自定义过滤器,可被用于一些常用的文本格式化。过滤器可以用在两个地方:双括号插值和一些常见文本格式化 :双括号插和v-bind表达式。过滤器应该被添加在JavaScript表达式的尾部 用管道符" | "

v-if,v-else

操作的是dom元素,

v-show

操作的是css样式 用法 v-show=“boolean值”

<div id='app'>
    <span>{{"好好学习" | addHeader}}</span>  //龙飞曰:好好学习
    <span>{{"天天向上" | addHeader}}</span>//龙飞曰:天天向上
    {{9000 | monty}}
</div>
Vue.filter("addHeader",function(val){//val就是传递需要过滤处理的值
            return "龙飞曰:"+val;//处理完之后返回出去
    })
           

computed

计算属性,computed里数据模型随着依赖的数据变化而变化。data里面的写过的数据模型在computed里面不能再次出现。计算属性里面的数据模型都有两个方法一个是get一个是set。默认是走get。只要写了这两个方法。属性获取值的时候就会默认走get。在设置值的时候默认走set(val),val是设置的值。computed不支持异步操作

watch

监听data里面指定数据模型的变化。和computed的用法一样。但是watch支持异步。

template

对v-show不起作用。相同的组件要加上key值重新渲染,template在渲染的时候会去掉template标签只显示内部子元素。

Vue的生命周期:beforeCreate()实例创建之前、created()实例创建之后、beforeMount()挂载dom元素之前、mounted()挂载dom之后、beforeUpdate()数据改变之前、updated()数据改变之后、beforeDestroy()销毁之前、destroyed销毁之后

vue基础知识

Class

动态绑定:

1.对象形式,{active:isActive} {className:数据模型}

2.数组语法,[activeClass,hasError]数组里面写数据模型。

3.表达式: " isActive ? ‘active’ : ‘’ " 三元运算符

style

动态绑定:

1.对象形式。{key:value}

2.数组形式,[]数组里面写多个样式对象。

ref

属性: 被用来给元素或子组件注册引用信息。

引用信息将会注册在父组件的

$refs

对象上。如果在普通的 DOM 元素上使用,

引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例

$nextTick

,下一个嘀答.比如在点击事件的时候需要获取值,但是你会发现根本没有获取到。那是因为点击之后代码执行完了,页面还没渲染完毕所以没有获取到。页面渲染也是异步操作。

component组件,组件其实就是一个对象,每个组件里面都有一个template属性。局部组件的声明和定义变量一样。var tem={}; 因为组件是可复用的 Vue 实例,所以它们与 new Vue 接收相同的选项,例如computed、watch、methods 以及生命周期钩子等。仅有的例外是像 el 这样根实例特有的选项data()要写成函数。组件嵌套那个组建需要就在那哥里面注册components

组件之间的通信:父传子是通过 给父元素动态动态属性,子组件用props=[]来接收数组里面的值可以直接使用。 字传父是通过动态给父元素绑定自定义事件.子组件在触发事件的时候发布事件(发布者) 父组件是订阅者执行事件。

slot插槽。想在组件中插入元素就要用插槽。如果没有指定的插槽,插入到默认的slot里面 是因为检测到有template则编译template放入渲染函数里面放在app里面,所以里面的代码就不执行。使用template内容替换app里面的内容。所以不显示。要用到插槽才能显示子组件调用父组件的方法 slot父组件调用子组件的方法

this.$refs

.组件名

keep-alive

是vue提供的标签,缓存在切换组件的时候不让销毁

兄弟通信:var EventBus = new Vue();//生成vue实例

EventBus

.$emit

(‘red’)发布消息。 EventBus.

$on

(‘red’, () => { this.isRed = true })订阅。

js文件是同步执行的。

想让js异步执行有两种方法: async 和 defer 属性

注: 所有的defer 脚本保证是按顺序依次执行的。

async属性是HTML5新增的。作用和defer类似,但是它将在下载后尽快执行,不能保证脚本会按顺序执行。它们将在onload 事件之前完成。