vue3学习-持续更新

生命周期
<script setup>
// 挂载前
onBeforeMount(() => {
    tableDataRef.value = tableData;
});
</script>
ref and reactive
<template>
    <input type="text" v-model="form.name"/>
    <input type="text" v-model="value"/>
</template>

<script setup>
import {reactive, ref} from "vue";

const form = reactive({
    name: "Hello",
    data: []
});

const value = ref("");
</script>
element-plus 本地文档
1、下载项目
https://github.com/element-plus/element-plus/tree/gh-pages

2、启动项目
npm install http-server -g
http-server --port 5000 // 指定5000端口

3、访问
http://127.0.0.1:5000
类似于 el-form 的校验提示样式
<style scoped>
/* 类选择器 */
.div-tip {
    color: #F56C6C;
    font: 12px "Microsoft YaHei";
}
</style>
vite.config.js
import {defineConfig} from "vite";
import vue from '@vitejs/plugin-vue';

export default defineConfig({
    plugins: [
        vue()
    ],
    // 服务器配置
    server: {
        host: '127.0.0.1',
        port: 5000,
        open: true
    }
})
上移
 <div style="display: flex;margin-bottom: 12px">
     <el-button
         type="primary"
         plain
         @click="upMove"
     >
         上移
     </el-button>
 </div>

 <el-table :data="tableDataRef"
           @current-change="handleCurrentChange"
           highlight-current-row
 />


<script setup>

// tableDataRef
const tableDataRef = ref([]);

const currentRow = ref();

const handleCurrentChange = (row) => {
    currentRow.value = row;
};

const upMove = () => {
    const index = tableDataRef.value.indexOf(currentRow.value);
    if (index <= 0) {
        return;
    }

    // 交换,解构赋值
    const temp = tableDataRef.value[index];
    [tableDataRef.value[index], tableDataRef.value[index - 1]] = [tableDataRef.value[index - 1], temp];
};
</script>
下拉框,耦合 el-load
<template>
   <el-select
       v-model="value"
       clearable
       placeholder="请选择配置"
       style="width: 180px"
       @change="handleSelectChange"
       @clear="handleClear"
   >
       <el-upload
       >
           <template #trigger>
               <el-button type="primary" style="width: 180px">导入自定义配置</el-button>
           </template>
       </el-upload>

       <el-option
           v-for="item in options"
           :key="item.value"
           :label="item.label"
           :value="item.value"
           style="text-align: center"
       />
   </el-select>
</template>

<script setup>
import {ref} from "vue";

const value = ref('')
const options = [
   {
       value: 'Option1',
       label: 'Option1',
   },
   {
       value: 'Option2',
       label: 'Option2',
   }
]

const handleSelectChange = (value) => {
   console.log(value)
}

const handleClear = () => {

}
</script>
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有长进啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值