vue 在 DOM (即非字符串的模板) 中使用组件

Vue中获取DOM元素

<div id="app">
        <input type="button" value="获取元素" @click="getElement">
        <h3 ref="myh3">今天天气真好啊</h3>
    </div>
    <script>

        var vm = new Vue({
            el:'#app',
            data: {

            },
            methods: {
                getElement(){
                    console.log(this.$refs.myh3.innerText)
                }    
            },
        })
    </script>

还可以直接获取组件中的数据和方法,直接调用

<div id="app">
        <input type="button" value="获取元素" @click="getElement" ref="button">
        <h3 ref="myh3">今天天气真好啊</h3>
        <hr>
        <login ref="mylogin"></login>
    </div>
    <script>

        var login={
            template:'<h1>登录组件</h1>',
            data(){
                return {
                    msg: 'son msg'
                }
            },
            methods: {
                show(){
                    console.log("调用了子组件中的方法")
                }
            },

        }

        var vm = new Vue({
            el:'#app',
            data: {

            },
            methods: {
                getElement(){
                    // console.log(this.$refs.myh3.innerText)
                    // console.log(this.$refs.button.innerText)
                    alert(this.$refs.mylogin.msg)
                    this.$refs.mylogin.show()
                }    
            },
            components:{
                login
            }
        })
    </script>

注意组件命名规则,直接在 DOM (即非字符串的模板) 中使用时只有 kebab-case 是有效的。上面代码案例中,我的组件名叫login ,所以是符合要求的。

上一篇:jQuery的优势


下一篇:【2022 省选训练赛 Contest 05 C】B(计算几何)