• 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)
    })

    面试题

  • 相关阅读:
    spring使用JdbcDaoSupport中封装的JdbcTemplate进行query
    javascript正则表达式
    Hi java新特性
    jdk 1.5
    jdk 1.6 & 1.7新特性
    core java 10~12(多线程 & I/O & Network网络编程)
    core java 8~9(GUI & AWT事件处理机制)
    core java 7 exception
    core java 5~6(OOP & 高级语言特征)
    响应式布局样例
  • 原文地址:https://www.cnblogs.com/shihaiying/p/14038419.html
Copyright © 2020-2023  润新知