深入vue组件

1.组件的引入

在组件声明的驼峰式命名的标签,被渲染到HTML里时,会改成-小写的形式(2.0以下版本),命名的时候要以-小写的形式命名。

深入vue组件

深入vue组件


模板引入的另外一种形式,就是用is标签,把要写的标签引入

深入vue组件

也可以动态引入 在is前面加:冒号,而且等于一个变量,这个变量要在data里声明

深入vue组件

子父组件的传值

深入vue组件

 父组件,传值number给子组件

深入vue组件不可以驼峰命名 ,例如number-to-do,而不是numberToDo

props:[number],下面的图片里写错了

深入vue组件

深入vue组件

在父组件里变量名为number-to-do,在子组件里props变量声明时,也要number-to-do,在渲染的时候要改成驼峰式命名()。

props :

一种是数组,数组里时字符串,深入vue组件

另外一种是对象,深入vue组件

在父组件里引入的,number-to-do=‘78’,的话,在子组件里,props的声明对象就是

深入vue组件

对象里套数组。

动态的属性传递

深入vue组件

通过v-model绑定myVal,把myVal的值传递到com-a 标签里,要动态接收,使用:(v-bind),my-value 是动态地传递值得属性,my-value也需要在子组件里声明

深入vue组件

子组件如何向外传递事件

在子组件里绑定一个click事件,在这个事件里触发emitMyEvent事件。

深入vue组件

深入vue组件

在父组件里,监听my-event事件,用v-on绑定,当子组件触发my-event时,执行getMyEvent事件

深入vue组件事件也不支持驼峰式命名。

深入vue组件

插槽功能

也是父组件向子组件传值功能,传递的信息是模板,

在父组件里。模板内容是p标签,把p 插入com-a

深入vue组件

在子组件里,通过slot实现功能

深入vue组件

在子组件里

深入vue组件结果深入vue组件

父组件

深入vue组件深入vue组件

以命名的slot指定不同部分的插入

组件之间的通信-动态组件

通过v-bind 绑定currentView变量,is属性,通过改变currentView,来改变标签

深入vue组件

keep-alive是内置标签,起缓存的作用。

如果有很多currentView ,当切换的时候会记住上一个的内荣。

深入vue组件

3中组件之间的交互方式 1.向组件里传递props 2.子组件触发一个事件3.插槽功能,这是vue,js 对外交互的三种模式

过度动画-css实现过度

深入vue组件

点击按钮,p标签内容切换。如果给p 标签加上动画,切换会更加柔和,这就是vue的过度效果

深入vue组件

引入transition组件,还要和特定的条件配合使用才可以起作用,比如和v-show一起使用。

vue的过度方式有2中,一种是css过度,一种是js

css实现过度

深入vue组件

在接收过度效果元素的时候,vue的transiton组件会给这个元素,不同阶段,赋予不同的类名

我们通过控制css的类名来控制过度效果。通过以上4个类名来实现。

实现渐隐的效果,name等于fade,有了fade,给不同的阶段赋予不同的style样式

深入vue组件


深入vue组件

另外一种动画 my-trans

深入vue组件

然后给my-trans的不同阶段添加样式

深入vue组件

css实现过度效果

除了v-show接收过度效果意外,还有v-if,但是v-if消失后,在HTML里没有元素流

深入vue组件深入vue组件

动态组件是如何接受transtion的?

首先要注册com-a和com-b深入vue组件

然后设置挂载点div深入vue组件

is可以动态加载

设置currentView变量的值

深入vue组件

toggleCom进行点击按钮,切换不同的com-a or com-b

深入vue组件

通过mode来控制动画的展示顺序,默认是先进后出,影响美观,所以要改写mode=“out-in”

深入vue组件

使用v-if和v-elase来进行多元素的过度

深入vue组件

深入vue组件

深入vue组件

js控制动画

js控制的样式多一些,也分为动画阶段,与css不同的是,js 通过控制事件,例如v-on ,来监听事件钩子,当过度进行到特定的阶段,就会调用。

深入vue组件

深入vue组件深入vue组件

在绑定的过程中要注意的几个问题

1.在绑定的过程中,要绑定v-bind:css="false",这样避免transition去检查css中指定的选项,影响

深入vue组件

2.方法里带有参数,主要通过el参数来实现的,,el指transition里的dom元素,ente和leave这两个方法比较特殊,有2个参数,done就是进入以后,调用done方法,enter和leave是函数体内所必须调用的。

实现,渐隐地从右边出去,渐先地从左边进入。

首先用到jquery里的animate,在最外层引入jquery.js,不会影响其他代码的执行

深入vue组件

el指p标签里的东西

深入vue组件

[email protected]  v-bind去掉


自定义指令

v-on v-show 都是vue的内置指令

深入vue组件

调用的时候要在标签里添加V-color指令

深入vue组件

directives 和data和components一样,el指p dom元素,binding指变量,或表达式,是一个对象,这里指v-color,value是指接收到的指令,这里指red

深入vue组件

把dirdctives写到new Vue 可对所有的color使用

深入vue组件

自定义一个focus指令,直接获取input焦点

深入vue组件

深入vue组件深入vue组件

Vue高级功能-插件

vue-resource是http请求的插件

vue.cli