zoukankan      html  css  js  c++  java
  • Vue props 单向数据流

    1、props通信

    注意:DOM模板的驼峰命名props要转为短横分割命名。

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>Vue</title>
        </head>
    
        <body>
            <div id="app">
                <my-component message='来自父组件的数据' warning-text="提示信息"></my-component>
    
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                Vue.component('my-component', {
                    template: '<div>{{warningText}}:{{message}}</div>',
                    props: ['message', 'warningText']
                })
                new Vue({
                    el: "#app"
                })
            </script>
        </body>
    
    </html>

    传递动态数据(v-bind):

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>Vue</title>
        </head>
    
        <body>
            <div id="app">
                <input type="text" v-model="parentMessage" />
                <my-component :message='parentMessage'></my-component>
    
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                Vue.component('my-component', {
                    template: '<div>{{message}}</div>',
                    props: ['message']
                })
                new Vue({
                    el: "#app",
                    data: {
                        parentMessage: ''
                    }
                })
            </script>
        </body>
    
    </html>

    2、单向数据流

    (1)子组件保存父组件传递过来的值,在子组件自己的作用域下修改和使用。

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>Vue</title>
        </head>
    
        <body>
            <div id="app">
    
                <my-component :init-count='1'></my-component>
    
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                Vue.component('my-component', {
                    template: '<div>{{initCount}}</div>',
                    props: ['initCount'],
                    data: function() {
                        return this.initCount
                    }
                })
                new Vue({
                    el: "#app"
                })
            </script>
        </body>
    
    </html>

    (2)使用计算属性

    <!DOCTYPE html>
    <html lang="zh">
    
        <head>
            <meta charset="UTF-8" />
            <title>Vue</title>
        </head>
    
        <body>
            <div id="app">
    
                <my-component :width='100'></my-component>
    
            </div>
            <script src="https://cdn.bootcss.com/vue/2.5.9/vue.min.js"></script>
            <script type="text/javascript">
                Vue.component('my-component', {
                    template: '<div :style="style">组件内容</div>',
                    props: ['width'],
                    computed: {
                        style: function() {
                            return {
                                 this.width + 'px'
                            }
                        }
                    }
                })
                new Vue({
                    el: "#app"
                })
            </script>
        </body>
    
    </html>
  • 相关阅读:
    20155339 Exp9 Web安全基础
    20155339 Exp8 Web基础
    20155339 Exp7 网络欺诈防范
    20155339 Exp6 信息搜集与漏洞扫描
    20155339 Exp5 MSF基础应用
    20155339 Exp4 恶意代码分析
    20155339 Exp3 免杀原理与实践
    20155339平措卓玛 Exp2 后门原理与实践
    20155339平措卓玛 Exp1 PC平台逆向破解(5)M
    20155339 第16周课堂实践加分作业
  • 原文地址:https://www.cnblogs.com/mengfangui/p/8057613.html
Copyright © 2011-2022 走看看