zoukankan      html  css  js  c++  java
  • 杂记 -- 关于vue-router样式、vuecli引用全局js函数、vue.slot用法

    1、routerLinkTo 样式设置

    有四种路径如下:

    1. <router-link to='/'>
    2. <router-link to='/a'>
    3. <router-link to='/b'>
    4. <router-link to='/ab'>

    router-link-active相当于模糊匹配,及2或3点击,1号也会添加router-link-active样式;点击4号,1和2也会添加该类;
    router-link-exact-active相当于精准匹配,只会添加到点击的标签上;

    修改vue默认的routerLink样式:

    方法一:设置局部
    直接在相关组件中设置想要的router-link-active或router-link-exact-active样式

    <style>
        .router-link-exact-active{
            border-bottom:2px solid #1989fa;
        }
    </style>
    

    方法二:设置全局
    在router/index.js 中设置全局的linkActiveClass
    linkActiveClass:myActive

    详细可以参照文档进行设置:https://router.vuejs.org/zh/api/#base

    2、在vue项目结构中导入全局的js函数

    以时间格式化函数为例:

    首先在vuecli项目结构中创建相关的js文件:

    //E:vueplatformsrcassetsjsDateFormat.js 
    /**************************************时间格式化处理************************************/
    function dateFormat(fmt, date) {
        var o = {
            "M+": date.getMonth() + 1, //月份   
            "d+": date.getDate(), //日   
            "h+": date.getHours(), //小时   
            "m+": date.getMinutes(), //分   
            "s+": date.getSeconds(), //秒   
            "q+": Math.floor((date.getMonth() + 3) / 3), //季度   
            "S": date.getMilliseconds() //毫秒   
        };
        if (/(y+)/.test(fmt)) {
            fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
        }
        for (var k in o) {
            if (new RegExp("(" + k + ")").test(fmt))
                fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        }
        return fmt;
    }
    
    export {
        dateFormat//导出
    }
    

    其次在main.js文件中进行全局配置,把它挂在到vue的原型中去:

    //main.js
    import { dateFormat } from './assets/js/DateFormat'
    Vue.prototype.$dateFormat = dateFormat
    

    最后在需要调用的地方直接进行引用:ctime:this.$dateFormat('yyyy-MM-dd hh:mm:ss',new Date())就完成对时间的格式化处理

    3、vue中slot的用法

    slot:插槽,子组件中存在一个对父组件插入内容的占位

    一、不具名插槽

    Child.vue:

    <template>
        <div>
            <p>这里是子组件</p>
            <slot>
                父组件的占位,父组件没有插入内容会显示
            </slot>
        </div>
    </template>
    

    Parent.vue:

    <template>
        <div>
            <Child>
                <p>父组件插入内容</p>
            </Child>
        </div>
    </template>
    <script>
    import Child from './Child'
    export default {
        components:{ Child }
    
    }
    </script>
    

    显示:
    这里是子组件

    父组件插入内容

    二、具名插槽

    Child.vue:

    <template>
        <div>
            <p>这里是子组件</p>
            <slot name="slot1">//具体名字
                这里是slot1
            </slot>
            <slot>默认的slot</slot>
            <slot name="slot2">
                这里是slot2
            </slot>
        </div>
    </template>
    

    Parent.vue

    <template>
        <div>
            <Child>
                <p slot="slot2">父组件插入内容</p>//匹配名字相同的slot插槽,没有名字则匹配默认的slot插槽
            </Child>
        </div>
    </template>
    <script>
    import Child from './Child'
    export default {
        components:{ Child }
    
    }
    </script>
    

    显示:
    这里是子组件

    这里是slot1 默认的slot
    父组件插入内容

  • 相关阅读:
    最近想做的开发配套工具
    nodejs 入门
    MySQL Server 5.6 配置文件my.ini 以及windows上mysql表名区分大小写
    js闭包实例汇总
    javascript深入理解js闭包
    jQuery中$.fn的用法示例介绍
    css3图片旋转
    JS中的prototype
    追求极致--纯css制作三角、圆形按钮,兼容ie6
    CSS 最核心的几个概念
  • 原文地址:https://www.cnblogs.com/Zxq-zn/p/12323445.html
Copyright © 2011-2022 走看看