Vue知识点

指令

v-example="value" —— 这样可以传值到指令中,指令会根据value值来操作html

<div v-if="boolValue">boolValue为true时会显示</div>

v-example="'string'" —— 使用字符串作为表达式

<p v-html="'<h1>Hello word</h1>'"></p>

v-example:arg="value" —— 这里可以传参数(arg),例:class就是参数,className是参数值

<div v-bind:class="className"></div>

v-example:arg.modifier="value" —— 使用修饰符(modifier),例:点击后调用preventDefault()

<button v-on:submit.prevent="onSubmit"></button>

自定义指令

指令定义函数提供了几个钩子函数 (可选):

  • bind:只调用一次,指令第一次绑定到元素时调用。
  • insert:被绑定元素插入父节点时调用。
  • update:所在组件的 VNode 更新时调用,但是可能发生在其子元素的 VNode 更新之前。
  • componentUpdated:所在组件的 VNode 及其子元素的 VNode 全部更新时调用。
  • unbind:只调用一次,指令与元素解绑时调用。

以上每个钩子函数都有可以用的el,binding和vnode参数,除了update和componentUpdated之外,还会暴露oldVnode,以区分传递的旧值和新值。

  • el 指令所绑定的元素,可以用来直接操作 DOM 。
  • binding 一个对象,包含以下属性:name,value,oldValue,expression,arg和modifiers
  • vnode Vue 编译生成的虚拟节点。

binding和vnode都是只读。

实例:

Vue.directive('tack',{
    bind(el,binding,vnode){
        el.style.position = 'fixed';
        el.style.top = binding.value + 'px';
    }
})

<div id="app">
    <p>向下滚动页面</p>
    <p v-tack="70">我固定在离顶部70px的地方</p>
</div>

若想要区分偏离的70px是在顶部还是左侧,可以通过传递一个参数:

Vue.directive('tack',{
    bind(el,binding,vnode){
        const s = (binding.arg == 'left'?'left':top);
        el.style[s] = binding.value + 'px'; 
    }
})

<p v-tack:left="70">现在我会在距离左侧70px的地方</p>

同理,也可以使用多个值:

你也可以使用多个值,像自带指令一样用:

Vue.directive('tack',{
    bind(el,binding,vnode){
        el.style.position = 'fixed';
        el.style.top = binding.value.top+'px';
        el.style.left = binding.value.left+'px';
    }
})

<p v-tack="{top:'40',left:'100'}">我固定在离顶部40px、左侧100px的地方</p>

 

简单创建一个滚动动画小例子:

Vue.directive('scroll',{
    inserted:function(el,binding){
        let f = function(evt){
            if(binding.value(evt,el)){
                window.removeEventListener('scroll',f);
            }
        }
        window.addEventListener('scroll',f);
    }
});

new Vue({
    el:'#app',
    methods:{
        handleScroll:function(evt,el){
            if(window.scrollY>50){
                TweenMax.to(el,1.5,{
                    y:-10,
                    opacity:1,
                    ease:sine.easeOut
                })
            }
            return window.scrollY>100;
        }
    }
});

<div class="box" v-scroll="handleScroll">
    <p>Your Name, this film, is a tale of what happens to a boy and girl who are destined to meet. Neither one knows it yet, but somewhere out there is a person they are bound to care deeply about.</p>
</div>

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue.js是一种用于构建用户界面的JavaScript框架,由Evan You于2014年创建。它采用了响应式的数据绑定和组件化的开发方式,使得开发者能够更轻松地构建高效、可维护的前端应用程序。 在Vue知识点中,首先需要了解Vue的基本概念和核心特性。Vue的核心是响应式数据绑定,它允许开发者将数据与DOM元素进行绑定,使得数据的变化能够自动反映到界面上。此外,Vue还提供了指令、计算属性、监听器等功能,方便开发者处理复杂的数据逻辑和交互行为。 另外,Vue的组件化开发模式也是非常重要的知识点。通过将应用程序拆分成一系列独立的组件,开发者可以更好地管理和复用代码。Vue提供了组件的定义、组件通信、组件生命周期等功能,方便开发者构建可扩展的应用程序。 除了基本的概念和核心特性,Vue知识点还包括路由管理、状态管理、动画效果等方面。路由管理允许开发者通过URL的变化来实现页面之间的切换和导航,使得应用程序可以呈现更好的用户体验;状态管理用于管理应用程序的全局状态,方便各个组件之间的数据通信和共享;动画效果可以为应用程序增加交互性和视觉效果。 综上所述,一个完整的Vue知识点的PDF分享应当包括Vue的基本概念、响应式数据绑定、组件化开发模式、路由管理、状态管理和动画效果等方面的内容。通过学习这些知识点,开发者可以更好地掌握Vue的使用方法,提高前端开发的效率和质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值