vue 2.0 知识点

组件内部的v-on事件与组件上定义的v-on事件

当在组件内部的元素上定义了v-on事件,如:给button元素添加v-on:click,这样点击按钮时是会执行click事件函数的。但是如果把这个组件导入其他组件里时,在组件上定义的如:v-on:click是不会生效的。解决方法:增加修饰符native。

引用button的组件代码

<template>
    <div>
        <div>
            <!--注意这里:通过native修饰符,让定义在test-button组件上的 click事件生效-->
            <test-button @click.native="output()"></test-button>
        </div>
    </div>
</template>
<script>
    import testButton from "./button.vue";
    export default {
        data:()=>{
            return {
               
            }
        },
        components:{
            testButton
        },
        methods:{
            log:(params)=>{
                console.log(params);
            },
            output(){
                console.log('点击了组件外部');
            }
        }
    }
</script>

button组件代码

<template>
    <div>
        <button type="button" @click="clickLog()">点击打印something</button>
    </div>
</template>
<script>
    export default{
        methods:{
            clickLog(){
                console.log('点击了组件内部');
            }
        }
    }
</script>
点击结果:
点击button结果显示

阻止onmousemove事件

有时候当页面出现了一层蒙版在最上面时,如果下面的内容区域是可以滚动的,那么当你在蒙版上上下滚动时,下面的内容区域也会跟着滚动,要解决这个问题,可以使用修饰符 prevent 解决。

<template>
    <div>
        <div>
            <div @touchmove.prevent="log(1)" class="backdrop"></div>
        </div>
    </div>
</template>

过滤器的使用

和其他框架类似,你可以自定义过滤器。过滤器可以用在bind指令(在vue2.1以后开始支持)和mustache插值(即{{}}双大括号里)。

<template>
     <div>
         <a v-for='(url,index) in urlList' :href='url.url | getquery(url.name,url.age)'>{{url.url}}</a>
     </div>
</template>

<script>
export default {
     data () {
         return {
             urlList : [
                 {url : 'http://www.baidu.com',name :'ziksang',age : 20},
                 {url : 'http://www.google.com',name :'ziksang2',age : 30}
             ]
         }
     },
     filters : {
         getquery (value,name,age) {
             if(!value) return ""
             return `${value}?name=${name}&age=${age}`
         }
     }
}
</script>

注意点:使用过滤器时传的第一个参数是定义过滤器时的第二个参数。因为默认使用过滤器时,已经把过滤的内容当作第一个参数了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 10,455评论 0 29
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 13,787评论 4 129
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 6,646评论 0 6
  • 下载安装搭建环境 可以选npm安装,或者简单下载一个开发版的vue.js文件 浏览器打开加载有vue的文档时,控制...
    冥冥2017阅读 11,255评论 0 42
  • 今天听了张老师的讲座,关于对于孩子表扬赞美的方法。多听有益。今天的作业是,说出你孩子的十大优点。1,懂事儿,善解人...
    mm258369阅读 2,271评论 0 0