文档的命令
npm init vite-app 项目名 yarn create vite-app 项目名等价于
全局安装后 cva 项目名 或 npx create-vite-app 项目名在main.ts中添加
import {createWebHashHistory, createRouter} from 'vue-router' const history = createWebHashHistory()先导入你的router文件
import router from './router' router.afterEach(() => { console.log(1); });在最外层的页面中,定义provide变量。然后在子组件中使用inject可以及时拿到该变量。
在最外层声明 App.vue
<script lang="ts"> // 导入相应内容 import {provide, ref} from 'vue export default { setup(){ // 使用ref设置默认值 const asideVisible = ref(false) // 使用provide设置名字以及它对应的值,供子组件访问其数值 provide('asideVisible', asideVisible) } } </script>子组件.vue
<script lang="ts"> // 导入相应内容 import {inject, Ref} from 'vue'; export default { setup() { // 使用inject获取名为asideVisible的provide const asideVisible = inject<Ref<boolean>>('asideVisible'); }, }; </script>在外部定义一个需要传参的属性名,后面带上需要传递的参数。在子组件中使用props接受该参数。如果需要修改使用context. e m i t 和 emit和 emit和event进行数据的修改。
定义属性
setup(){ const value = ref(true) }传递参数,并定义事件名
<Switch :value="value" @update:value="value = $event"/>接受参数
props: { value: Boolean }修改参数
setup(props, context){ const modify = () => { context.$emit('update:value', !props.value) } }删除外部事件名,使用v-model代替
<Switch v-model:value="value"/>注意:如果使用v-model,子组件内部的触发事件名必须为 update:外部定义的参数名
