wncf's blog wncf's blog
首页
书签
  • JavaScript
  • vue
  • css
  • 收藏正则
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)

wncf

编写代码并热爱生活
首页
书签
  • JavaScript
  • vue
  • css
  • 收藏正则
  • 分类
  • 标签
  • 归档
关于
GitHub (opens new window)
  • JavaScript总结

    • javascript面试题
    • 数据类型判断
    • js一些技巧
    • 正则表达式
    • 常用的数组方法
    • 对象常用的方法
    • typeScript
    • js常用库
    • 浏览器常用api
    • js常用工具函数
    • 三级目录

  • css总结

  • 其他

  • 前端
  • vue总结
  • V3
wncf
2022-02-14
目录

进阶vue3

# Vue3.2 SetUp语法糖

为啥会出现setup语法糖?

起初vue3.0变量必须return出来才能在template中使用

导致页面上变量会出现很多次

# 不需要return变量就能使用

<template>
  <div>
    {{title}}
    <button @click="oNupdate">改变</button>
  </div>
</template>
<script setup>
    import { ref } from 'vue';
    let title=ref("值1")
    let oNupdate=():void=>{
        title.value='值2'
    }

</script>

# 组件无需注册便可使用

优点:节省变量名,无需注册重新命名,直接使用文件名

<template>
	<component-name></component-name>
</template>
<script setup>
    import componentName from "../components/componentName.vue"
</script>

# 组件如何传递参数( defineProps)

不写setup函数,如何获取和传递参数

父组件传递参数给子组件

<template>
	<component-name :info='message'></component-name>
</template>
<script setup>
    import componentName from "../components/componentName.vue"
    let message='我是参数'
</script>

子组件接收参数值

<template>
    <div>
        <p>{{info}}</p>
    </div>
</template>
<script setup>
    import {defineProps} from 'vue'
    defineProps:{
        info:{
            type:String,
            default:''
        }
    }
</script>

# 子组件向父组件抛出事件(defineEmits)

子组件抛出

<template>
</template>
<script setup>
    import {defineEmits} from 'vue'
    let $Emit = defineEmits(['add'])
let add= () >{
    $Emit('add','回传的参数')
}
</script>

父组件调用

<template>
	<component-name @add="parentAdd"></component-name>
</template>
<script setup>
    import componentName from "../components/componentName.vue"
    let parentAdd=(value)=>{
        console.log(value) //子组件向父组件传送的参数
    }
</script>

# 如何获取子组件的属性值

子组件暴漏自身的属性值

<template>
</template>
<script setup>
    import { reactive, ref,defineExpose } from "vue";
    let info=reactive({
        name:"wncf"
        age:23
    })
    //暴漏出去,父组件才可获取
    defineExpose({
        info
    })
}
</script>

父组件通过ref获取

<template>
	<component-name ref='componentRef'></component-name>
</template>
<script setup>
    import componentName from "../components/componentName.vue"
    const getInfo=()=>{
        console.log('获取子组件',componentRef.value.ino)
    }
</script>

# style中使用变量动态改变样式

<template>
  <p></p>  
</template>
<script setup>
  import { reactive } from 'vue'
  const state = reactive({
    color: 'red'
  })
</script>
<style scoped>
  p {
    color: v-bind('state.color');
  }  
</style>
编辑 (opens new window)
上次更新: 2022/05/28, 10:34:23
最近更新
01
腾讯云宝塔自动化部署方案
03-22
02
vscode格式化
12-11
03
github使用问题与解决方案
09-16
更多文章>
Theme by Vdoing | Copyright © 2022-2023 Wncf | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式