随笔分类 -  Vue再出发

摘要:一、环境 1、下载 npm i mitt 2、配置 a、新建 src/utils/emitter.ts // 引入 import mitt from "mitt"; // 调用 const emitter = mitt() // 暴露 export default emitter 二、使用 1、触发 阅读全文
posted @ 2025-03-17 20:00 市丸银 阅读(109) 评论(0) 推荐(0)
摘要:自定义组件 子组件触发,父组件接收 @xx=yy 自定义事件,子组件触发xx事件,父组件调用yy方法 1、触发(子组件) a、核心 // [] 可以是多个事件 let emit = defineEmits(["send-age", ]) // 触发 emit("send-age", 666) b、案 阅读全文
posted @ 2025-03-17 19:40 市丸银 阅读(105) 评论(0) 推荐(0)
摘要:一、注意: 一般父传子,子传父也可以,但是太麻烦,一般子传父,用自定义组件 二、使用 1、发送(父组件) <Student :age="19"/> 2、接收(子组件) defineProps(['age']) 阅读全文
posted @ 2025-03-17 19:27 市丸银 阅读(12) 评论(0) 推荐(0)
摘要:一、安装 npm install pinia 二、构建(main.ts) 1、引入 2、生成 3、使用 import { createApp } from 'vue' import App from './App.vue' import router from '@/router' // 1.引入 阅读全文
posted @ 2025-03-16 21:37 市丸银 阅读(144) 评论(0) 推荐(0)
摘要:一、区别 1、获取路由器 let router = useRouter() 2、使用 router.push({ name:'detail', query:news }) 二、案例 <template> <ul> <button v-for="news in newList" :key="news. 阅读全文
posted @ 2025-03-16 19:40 市丸银 阅读(51) 评论(0) 推荐(0)
摘要:一、params简写 1、路由 props: true 注意:只能params传参可以使用 { name:'detail', path:'detail/:id/:name/:content?', component:()=>import('@/views/Detail.vue'), props: t 阅读全文
posted @ 2025-03-16 19:18 市丸银 阅读(79) 评论(0) 推荐(0)
摘要:一、区别 let route = useRoute() 注意: 1、params参数可选可不选,参数占位后面+? 2、path占位符 3、使用name 二、案例 1、跳转 <template> <ul> <RouterLink :to="{ name:'detail', params: news } 阅读全文
posted @ 2025-03-16 18:56 市丸银 阅读(99) 评论(0) 推荐(0)
摘要:一、区别 没有 this.route let route = userRoute() route 相当于 this.route 二、路由 <template> <ul> <RouterLink :to="{ path:'/news/detail', query:news }" v-for="news 阅读全文
posted @ 2025-03-16 18:41 市丸银 阅读(82) 评论(0) 推荐(0)
摘要:一、安装 npm i vue-router 二、创建 1、新建 src/router/index.ts index.ts import {createRouter, createWebHashHistory} from 'vue-router' // 配置路由 const router = crea 阅读全文
posted @ 2025-03-15 17:16 市丸银 阅读(57) 评论(0) 推荐(0)
摘要:作用:功能分开 1、创建 src/hooks/useSum.ts 2、uesSum.ts文件 import { onMounted, ref } from 'vue'; // 属性、方法写在一个函数里 export default ()=>{ let num = ref(0) function ad 阅读全文
posted @ 2025-03-15 16:40 市丸银 阅读(30) 评论(0) 推荐(0)
摘要:父传子 父组件 <template> <Person :age="age" /> </template> <script lang="ts" setup name="App"> import { ref } from 'vue'; import Person from './components/P 阅读全文
posted @ 2025-03-15 15:50 市丸银 阅读(15) 评论(0) 推荐(0)
摘要:使用 <div ref="test"></div> import {ref} ... let test=ref() 子组件传值 父组件 子组件 <template> </template> <script lang="ts" setup name="Person"> import { reactiv 阅读全文
posted @ 2025-03-15 14:55 市丸银 阅读(14) 评论(0) 推荐(0)
摘要:一、原理 recative对象结构赋值 p = recative({k:v, a:b}) // p.v 和 p.a是响应式数据 let {k, a} = p // 相当于 let k = p.k let a =p.a, k和a不是响应式数据 二、解决方案 p = recative({k:v, a:b 阅读全文
posted @ 2025-03-15 13:31 市丸银 阅读(63) 评论(0) 推荐(0)
摘要:1、问题 reactive重新分配对象,即赋值,数据失去响应式 2、举例 let a=reactive({xxx}) a = {新值} a变成非响应式数据 3、解决 let a = reactive({xx}) Object.assign(a, {新值}) a还是响应式数据 阅读全文
posted @ 2025-03-15 13:12 市丸银 阅读(68) 评论(0) 推荐(0)
摘要:勾选 阅读全文
posted @ 2025-03-15 12:57 市丸银 阅读(41) 评论(0) 推荐(0)
摘要:一、语法糖 <script lang="ts" setup> </script> 优点:不用写return 缺点:组件名称冗余或无法命名 二、解决方案 1、安装 npm i vite-plugin-vue-setup-extend 2、配置 vite.config.ts import VueSetu 阅读全文
posted @ 2025-03-15 11:43 市丸银 阅读(34) 评论(0) 推荐(0)
摘要:1、版本管理(nvm) #显示可下载的列表 nvm list available # 下载 指定版本号 nvm install 版本号 # 查看 已安装版本 nvm list # 切换版本 nvm use 版本号 2、创建命令 npm create vue@latest 阅读全文
posted @ 2025-03-15 10:57 市丸银 阅读(24) 评论(0) 推荐(0)
摘要:proxy: { [process.env.VUE_APP_BASE_API + '/admin']: { target: 'http://39.98.123.211:8170', changeOrigin: true, pathRewrite: { ['^' + process.env.VUE_A 阅读全文
posted @ 2025-02-27 19:35 市丸银 阅读(17) 评论(0) 推荐(0)
摘要:一、设置 main.js // 1.引入 import * as API from '@/api'; new Vue({ render: h => h(App), beforeCreate() { Vue.prototype.$bus = this // 2.原型 Vue.prototype.$AP 阅读全文
posted @ 2025-02-21 10:05 市丸银 阅读(12) 评论(0) 推荐(0)
摘要:<div ref="test"></div> // 获取DOM this.$ref.test 阅读全文
posted @ 2025-02-08 10:27 市丸银 阅读(12) 评论(0) 推荐(0)