美文网首页
vue-动态参数(2.6.0版本新增)

vue-动态参数(2.6.0版本新增)

作者: 广告位招租 | 来源:发表于2019-02-19 16:39 被阅读0次

    可以用方括号[]括起来的JavaScript表达式作为一个指令或者事件名来作为参数

    <template>
        <div>
            <input @[eventName]="event" />
            <button @click="eventName='change'">change</button>
            <button @click="eventName='focus'">focus</button>
            <button @click="eventName=1">1</button>
    
        </div>
    </template>
    
    <script>
        export default {
            data() {
                return {
                    eventName: ''
                }
            },
            methods: {
                event() {
                    console.log('触发' + this.eventName + '事件')
                }
            }
        }
    </script>
    

    执行后的结果


    image.png

    这里动态参数预期会求出一个字符串,异常情况下的值为null,将会被现行的用于移除绑定。任何其他非字符串类型的值都会抛出一个警告(如图)

    <template>
        <div>
            <input @[type?change:focus]="event" />
            <button @click="type=true">change</button>
            <button @click="type=false">focus</button>
        </div>
    </template>
    
    <script>
        export default {
            data() {
                return {
                    type: null,
                    change: 'change',
                    focus: 'focus'
                }
            },
            methods: {
                event() {
                    console.log('触发' + (this.type ? 'change' : 'focus') + '事件')
                }
            }
        }
    </script>
    

    同时动态参数也支持表达式的形式,但是如果使用另一种方式将会报错


    image.png image.png

    这里是因为动态表达式有一些约束,因为某些字符放在HTML特性名里是无效的

    image.png

    变通的办法是使用没有空格或引号的表达式,或用计算属性替代这种复杂表达式。

    相关文章

      网友评论

          本文标题:vue-动态参数(2.6.0版本新增)

          本文链接:https://www.haomeiwen.com/subject/gnhfyqtx.html