vue笔记

作者: divcssjs | 来源:发表于2019-08-01 19:31 被阅读0次

    vue

    阻止默认--e.preventDefault(); --e.returnValue = false
    <a href="http://www.baidu.com" @click.prevent/>百度一下</a>
    
    <a href="http://www.baidu.com" @click="aaa($event)"/>百度一下</a>
    methods:{
        aaa(event){
            event.preventDefault()
        }
    }
    
    阻止冒泡 -- e.stopPropagation(),--e.cancelBubble = true
    <span @click="fn1">
        fn1--解构是fn1包裹fn2和fn3
        <p @click.stop="fn2">fn2</p>
        <p @click="fn3($event)">fn3</p>
    </span>
    
    fn1() {
        console.log(1);
    },
    fn2() {
        console.log(2);
    },
    fn3(event) {
        console.log(3);
        event.stopPropagation();
    }
    

    指令

    v-html 可以解析标签

    v-text 不解析标签

    v-bind:属性名 绑定动态属性 简写 :属性名

    v-on:click="事件名" 绑定事件 简写 @click

    v-show

    v-for

    v-if

    v-else-if

    v-else

    v-model

    v-once 只渲染元素和组件一次

    v-slot 插槽

    插槽

    默认插槽:当前组件引用的子组件内 直接写的代码会默认在当前组件显示

    具名插槽:当前组件引用的子组件内 ↓

    <Child>
        <template slot="home">
            <p>home的占位</p>
        </template>
    </Child>
    

    对应子组件内有的slot

    <slot name="home"></slot>
    

    自定义指令

    全局指令

    //main.js内 Vue实例之前
    Vue.directive('color',{
       inserted(el,obj){
           //el 当前元素
           //obj对象内有 name是color value是指令的值
           el.style.color=obj.value
       }
    })
    
    html里
    v-color="'red'"
    

    组件内指令

    //生命周期后续写
    directives:('color',{
        inserted(el,obj){
            ......
        }
    })
    

    全局组件

    //main.js Vue实例之前
    import All from '../views/All'
    Vue.component('my-all',All)
    
    //组件里直接使用 <my-all></my-all>
    

    vuex

    新建store.js

    import Vue from 'vue'
    import Vuex from 'vuex'
    
    Vue.use(Vuex)
    
    const store = new Vuex.Store({
        state:{},
        getters:{},
        mutations:{},
        actions:{}
    })
    
    export default store
    

    main.js里还要注册store

    组件里使用

    import {mapState} from 'Vuex'
    
    computed:{
        ...mapState(['data'])
    }
    

    守卫

    //全局前置守卫 拦截所有的路由 做登录判断
    router.beforeEach((to,from,next)=>{
      next()
    })
    
    //全局后置守卫 设置document.title信息 没有next 不拦截路由
    router.afterEach((to, from) => {})
    //路由独享守卫
    {
        path:"/home",
        component:Home,
        beforeEnter:(to,from,next)=>{
            next()
        }
    }
    //组件内守卫
    beforeRouteEnter 没this 实例没创建
    Update 路由变化执行
    Leave   离开组件调用
    

    class三元样式

    :style="true?'border:5px solid red':null"
    

    相关文章

      网友评论

          本文标题:vue笔记

          本文链接:https://www.haomeiwen.com/subject/dfacdctx.html