Vue_组件

1.定义方法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="static/js/vue.min.js"></script>
    <title>组件</title>
</head>
<body>
<div id="app01">
    <today-weather></today-weather>
    <my-weather></my-weather>
</div>

<script>
    // 全局组件定义方法
    Vue.component('today-weather', {
        template: '<div><h1>今天下雨,出不去啦,全局组件</h1></div>'
    })
    var vm = new Vue({
        el: '#app01',
        data: {},
        // 局部组件定义方法
        components: {
            'my-weather': {
                template: '<div><h1>今天下雨,出不去啦,局部组件</h1></div>'
            }
        }
    })
</script>
</body>
</html>

 2.表行组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="static/js/vue.min.js"></script>
    <title>表行组件</title>
</head>
<body>
<div id="app01">
    <table border="1">
        <tr>
            <td>编号</td>
            <td>游戏名称</td>
        </tr>
<!--        表行组件的引用必须用is属性引入-->
        <tr is="my_row1"></tr>
        <tr is="my_row2"></tr>
        <tr is="my_row3"></tr>
    </table>
</div>

<script>
    Vue.component('my_row1', {
        template: '<tr><td>(1)</td><td>英雄岛</td></tr>'
    })
    Vue.component('my_row2', {
        template: '<tr><td>(2)</td><td>地下城与勇士</td></tr>'
    })
    Vue.component('my_row3', {
        template: '<tr><td>(3)</td><td>英雄联盟</td></tr>'
    })
    let vm = new Vue({
        el: '#app01',
        data: {}
    })
</script>
</body>
</html>

 3.数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="static/js/vue.min.js"></script>
    <title>组件数据</title>
</head>
<body>
<div id="app01">
    <div>今天的天气是:<my_weather></my_weather></div>
</div>

<script>
    Vue.component('my_weather', {
        template: '<span>{{today_weather}}</span>',
        // 组件中的数据必须以函数的返回值方式返回
        data: function () {
            return {
                today_weather: '雨夹雪'
            }
        }
    })
    let vm = new Vue({
        el: '#app01',
        data: {}
    })
</script>
</body>
</html>

 4.可接收参数的组件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="static/js/vue.min.js"></script>
    <title>可接收参数的组件</title>
</head>
<body>
<div id="app01">
    <test_result :qqq="100"></test_result>
</div>

<script>
    Vue.component('test_result', {
        // 可以用来接送参数的变量,定义再数组中
        props: ['qqq'],
        // 可以做模板当中使用
        template: '<div @click="testResult">获取到的参数为:{{qqq}}</div>',
        // 也可以再计算属性或者函数当中使用
        methods: {
            testResult: function () {
                alert(this.qqq)
            }
        }
    })
    let vm = new Vue({
        el: '#app01',
        data: {}
    })
</script>
</body>
</html>

 5.变量传递

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="static/js/vue.min.js"></script>
    <title>传递变量</title>
</head>
<body>
<div id="app01">
    <div><input type="text" v-model="name"></div>
<!--    将父组件的变量传递进入子组件-->
    <div>今天的天气是:<my_weather :qqq="name"></my_weather></div>
</div>

<script>
    Vue.component('my_weather', {
        props: ['qqq'],
        template: '<span>{{qqq}}</span>',
    })
    let vm = new Vue({
        el: '#app01',
        data: {
            name: ''
        }
    })
</script>
</body>
</html>

 

posted @ 2020-07-15 18:14  手可摘星辰。  阅读(167)  评论(0编辑  收藏  举报