zoukankan      html  css  js  c++  java
  • vue 父子通信、ref、is、插槽与动画

    cnpm安装

    1、检查电脑中是否有cnpm
    cnpm -v
    2、如果没有cnpm的话就安装
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    3、检查是否有cnpm了
    cnpm -v
    4、配置环境变量
    找到nodejs ode_global这个文件添加到环境变量path当中

    父子组件通信(父传子)

    父组件通过自定义属性传值,子组件通过props接收

    // 父组件
    <v-child :info="name"></v-child>
    // 子组件
    export default {
    props:["info"]
    }
    1、父传子是单向数据流
    2、默认:父变,子变;子变,父不变,并且还会报错
    3、通过生命周期把父级给我值设置为我自己的msg。父变,子不变;子变,父不变,不会报错。
    4、如果想要实现父变子变;子变父变,还不报错,那么就传递一个json类型

    props验证

      props:{
      info:{
        // 必传
        required:true,
        // 传递数据类型
        type:String
      },
      age:{
        //设置默认值
        default(){
          return 50
        }
      }
    }

    子父组件通信(子传父)

    子组件想要修改父组件的数据 子传父,通过自定义事件实现;父组件可以通过e获取到子组件传的值

    // 子组件
    export default {
    methods: {
      toggle(){
        this.$emit('cancle','孙尚香')
      }
    }
    }
    // 父组件
    <v-child @cancle="toggle"></v-child>
    methods:{
    toggle(e){
    console.log(e)
    }
    }

    非父子组件通信(兄弟组件)

    单一事件管理

    // main.js
    Vue.prototype.Event = new Vue()
    // 发送者
    methods: {
    send(){
      this.Event.$emit("sendA",this.name)
    }
    }
    // 接受者
    mounted: {
    this.Event.$on("sendA",(e)=>{
    console.log(e)
    })
    }

    vuex 存储:localStrage、sessionStrage

    ref

    ref被用来给元素或者子组件注册引用信息。引用信息将会注册在父组件的$refs上。如果是普通的DOM元素上使用,引用指向的就是DOM元素;如果用在子组件上,引用就指向子组件的实例。

    <div class="smBox" ref="pink"></div>
    <button @click="getPink">点击获取粉盒子</button>
    <hr>
    <v-child ref="getChild"></v-child>
    <button @click="getChild">点击获取子组件</button>

    methods: {
    getPink(){
      this.$refs.pink.innerHTML = '哈哈哈,我就是那个粉盒子'
    },
    getChild(){
      this.$refs.getChild.toggleName()
    }
    }

    scoped

    样式局部作用

    <style scoped>

    </style>

    is

      <!-- 1、is解决固定搭配 -->
    <ul>
      <li is="v-a"></li>
    </ul>
    <hr>
    <!-- 2、动态组件 -->
    <div :is="hahaha"></div>
    <button @click="hahaha='vA'">vA按钮</button>
    <button @click="hahaha='vB'">vB按钮</button>
     
    data(){
    return {
    hahaha:vA
    }
    }

    animate.css

    // 1、安装animate.css
    npm i animate.css --save
    // 2、在main.js中引入
    import "animate.css"
    // 3、使用
    <transition enter-active-class="animate__animated animate__bounceInDown">
    <div :is="hahaha"></div>
    </transition>

    slot

    1、匿名插槽 ①如果没有内容,就不展示 ②如果有内容,就直接展示在slot所在的位置 ③如果有很多内容,全部展示在slot所在的位置

    // 父组件
    <v-child>
      <p>庄生晓梦迷蝴蝶</p>
      <p>望帝春心托杜鹃</p>
    </v-child>
    // 子组件
    <div>
    this is child
    <slot></slot>
    </div>

    2、具名插槽

    // 父组件
    <v-child>
      <p slot="one">锦瑟无端五十弦</p>
      <p slot="two">一弦一柱思华年</p>
    </v-child>
    // 子组件
    <slot name="two"></slot>
    <slot name="one"></slot>

    jQuery

    // 1、安装
    npm i jquery --save
    // 2、在main.js中引入
    import $ from "jquery"
    Vue.prototype.$ = $
    // 3、使用
    this.$('.btn1').click(()=>{
    this.$('.smbox').slideDown(2000)
    })
    this.$('.btn2').click(()=>{
    this.$('.smbox').slideUp(2000)
    })

    面试题

  • 相关阅读:
    POJ-2018 Best Cow Fences(二分加DP)
    POJ-2039 To and Fro
    POJ-2029 Get Many Persimmon Trees(动态规划)
    POJ-2081 Recaman's Sequence
    POJ-2081 Terrible Sets(暴力,单调栈)
    Java实现 LeetCode 740 删除与获得点数(递推 || 动态规划?打家劫舍Ⅳ)
    Java实现 LeetCode 739 每日温度(暴力循环)
    Java实现 LeetCode 739 每日温度(暴力循环)
    Java实现 LeetCode 739 每日温度(暴力循环)
    Java实现 LeetCode 738 单调递增的数字(暴力)
  • 原文地址:https://www.cnblogs.com/shihaiying/p/14038419.html
Copyright © 2011-2022 走看看