1.props限制和透传
props: { size: { // 自定义验证函数 validator: (val) => { return ["small", "medium", "large"].includes(val); }, }}复制代码
复制代码
const attrs = useAttrs();const filteredAttrs = computed(() => { return { ...attrs, style: undefined };});复制代码
复制代码
复制代码
复制代码
const path = require("path");// 参数一:说明需要检索的目录,参数二:是否检索子目录,参数三::指定匹配文件名的正则表达式const files = require.context("./components", false, /\.vue$/);const modules = {};files.keys().forEach((key) => { const name = path.basename(key, ".vue"); modules[name] = files(key).default || files(key);});复制代码
const modules = import.meta.glob('./src/*.js');// vite 转译上面后生成的代码const modules = { './src/foo.js': () => import('./src/foo.js'), './src/bar.js': () => import('./src/bar.js')}复制代码
const $slots = { "default": [{...}], "slotA": [{...}], "slotB": [{...}]}复制代码
复制代码
window.addEventListener('mousedown', e => { // 获取被点击的元素 const clickedEl = e.target; // `targetEl` 为检测的元素 if (targetEl.contains(clickedEl)) { // 在"targetEl"内部点击 } else { // 在"targetEl"之外点击 }});复制代码
复制代码
{{ tree.label }}复制代码
mounted(){ this.$nextTick(() => { this.$refs.inputs.focus(); //通过 $refs 获取dom 并绑定 focus 方法 })}复制代码
复制代码
复制代码
class Utils { // 复制一段文字到剪切板 copyToClipboard(text) { let copyText = document.createElement("input"); document.body.appendChild(copyText); copyText.value = text; copyText.select(); document.execCommand("copy"); document.body.removeChild(copyText); }}export default new Utils();复制代码
import Utils from "./utils/utils.js";// 设置全局方法Vue.prototype.$utils = Utils;复制代码
import Utils from "./utils/utils.js"; const app = createApp(App);// 设置全局方法app.config.globalProperties.$utils = Utils; app.mount("#app");复制代码接下来任何地方都能愉快的访问啦this.$utils.copyToClipboard(text);// Vue3 setupconst { proxy } = getCurrentInstance();proxy.$utils.copyToClipboard(text);复制代码
复制代码
复制代码
复制代码
复制代码
// Vue 3const app = createApp(App);app.config.errorHandler = (err) => { console.error(err);};// Vue 2Vue.config.errorHandler = (err) => { console.error(err);};复制代码
复制代码{{ title }}
{{ description }}
复制代码{{ title }}
{{ description }}
{{ user }}复制代码
复制代码
复制代码
[data-v-e44d851a] .ant-card-head-title { background: green;}复制代码
复制代码
import Card from './Card.vue';export default { components: { Card }, props: { Mytype: { type: String, required: true, }, Mycolor: { type: String, default: "green", } },};复制代码
import Card from './Card.vue';const cardProps = {};Object.entries(Card.props).forEach(([key, value]) => { cardProps[`My${key}`] = value;});export default { components: { Card }, props: { ...cardProps },};