• Vue中的组件及路由使用


    Vue中的组件及路由使用

    1.组件是什么

           组件系统是 Vue 的一个重要概念,因为它是一种抽象,允许我们使用小型、独立和通常可复用的组件构建大型应用。通常一个应用会以一棵嵌套的组件树的形式来组织;

    1.1组件的声明及使用

      全局组件

    复制代码
    <body>
        <div id="app">
            <!-- 用全局组件的名称作为HTML的标签 -->
            <myzujian></myzujian>
        </div>
        
    </body>
    <script>
        //设置全局组件
         Vue.component("myzujian",{
              template:"<h2>我是全局组件</h2>"
          });
         var app=new Vue({
             el:"#app",
         });
    </script>
    复制代码

      局部组件

    复制代码
    <body>
        <div id="app">
            <!-- 用局部组件的名称作为HTML的标签 -->
            <zu-jian></zu-jian>
        </div>
        
    </body>
    <script>
         var app=new Vue({
             el:"#app",
             components:{
                  zuJian:{
                      template:"<h1>我是局部组件</h1>",  
                 }
             }
         });
    </script>
    复制代码

    1.2组件使用注意事项

       组件名如果是驼峰法命名,使用组件时要将大写字母改为小写,并且在前面加上 - 组件中的tamplate属性必须有一个唯一的根元素,否则会报错

    1.3组件中数据及方法

    复制代码
    <body>
        <div id="app">
            <mytemp></mytemp>
        </div>
    </body>
    <script>
        var app=new Vue({
            el:"#app",
            data:{},
            components:{
                mytemp:{
                    data(){
                        return {
                            msg:"123456789",
                        }
                    },
                    methods: {
                        cli(){
                            alert(this.msg);
                        }
                    },
                    template:'<h1 @click="cli">you{{msg}} very good</h1>',
                }
            }
        });
    </script>
    复制代码

    1.4父级组件传值

    复制代码
    <body>
        <div id="app">
            <my :cc="msg"></my>
        </div>
    </body>
    <script>
        var app = new Vue({
            el:'#app',
            data:{msg:'没事干'},
            components:{
                my:{
                    props:['cc'],
                    template:"<s>{{cc}}</s>"
                }
            }
        })
    </script>
    复制代码

    2.路由的使用

       Vue在使用路由插件Vue-router,要提前引入。

    复制代码
    <body>
        <div id="app">
            <ul>
                <li> <router-link to="/login">登录</router-link> </li>
                <li> <router-link to="/reg">注册</router-link> </li>
            </ul>
            <router-view></router-view>
        </div>
    </body>
    <script>
        // 获取路由对象
        var ro = new VueRouter({
            // 定义路由规则
            routes:[
                // 具体匹配规则
                // {path:匹配地址栏路由变化,component:要展示组件}
                {path:'/reg',component:{template:"<s>我是注册</s>"}},
                {path:'/login',component:{template:"<s>我是登录</s>"}},
            ]
        })
        var app = new Vue({
            el: '#app',
            data: {},
            router:ro
        })
    </script>
    复制代码

    2.1动态路由匹配

    复制代码
    <body>
        <div id="app">
            <!-- 传递数据直接写在 / 后面 -->
            <router-link to="/user/10">hfhg</router-link>
            <router-view></router-view>
        </div>
    </body>
    <script>
        var router = new VueRouter({
            routes: [
                {   
                    // 获取数据是变量的名字前面加: 
                    path: "/user/:id", component: {
                        mounted(){
                            // router会为vue添加公有属性 $route ,使用$route来获取数据
                            console.log(this.$route.params.id)
                        },
                        template: "<s>就大师{{$route.params.id}}分离开国家</s>"
                    }
                }
            ]
        })
        var app = new Vue({
            el: '#app',
            data: {},
            router,
        })
    </script>
    复制代码
  • 相关阅读:
    GetBuffer与ReleaseBuffer的用法,CString剖析
    Mysql 关闭自动提交
    Mysql 创建用户和数据库
    老爸陪我去面试——北漂18年(3)
    Java中的“&”和“&&”的区别
    Java常量定义
    利用Java API生成50到100之间的随机数
    Java考查“==”和equals
    列出JDK中常用的Java包
    cognos 配置
  • 原文地址:https://www.cnblogs.com/dream111/p/13493489.html
Copyright © 2020-2023  润新知