ZBLOG

以下是将您提供的 Vue 2 代码改写为 Vue 3 的版本。主要变化包括使用 setup 函数、ref 来声明响应式数据以及适应 Vue Router 和 Vuex 相关API的变化。

<template>
    <div class="header">
        <div class="open">
            <span v-if="isCollapse" class="iconfont icon-zhankaicebianlan" @click="chengMenu"></span>
            <span v-else class="iconfont icon-shouqicebianlan" @click="chengMenu"></span>
        </div>
        <div class="right">
            <el-dropdown>
                <el-avatar :src="circleUrl"></el-avatar>
                <el-dropdown-menu slot="dropdown">
                    <el-dropdown-item>修改用户名</el-dropdown-item>
                    <el-dropdown-item>修改密码</el-dropdown-item>
                    <el-dropdown-item>退出登录</el-dropdown-item>
                </el-dropdown-menu>
            </el-dropdown>
        </div>
    </div>
</template>

<script setup lang="js">
import { ref, computed } from 'vue';
import { useStore } from 'vuex';

// 响应式数据
const store = useStore();
const circleUrl = "https://cube.elemecdn.com/3/7c/3ea6beec64369c2642b92c6726f1epng.png";

// 从 Vuex 获取 isCollapse 状态
const isCollapse = computed(() => store.state.isCollapse);

// 方法
function chengMenu() {
    store.commit('changeMenuShow');
}
</script>

<style lang="less" scoped>
.header {
    width: 100%;
    height: 50px;
    background-color: #1a78bf;
    color: #fff;
    line-height: 50px;
    display: flex;
    align-items: center;
    justify-content: space-between;

    .open {
        font-size: 20px;
        margin-left: 10px;

        .iconfont {
            cursor: pointer;
        }
    }

    .right {
        margin-right: 15px;
        display: flex;
        align-items: center;
        line-height: 0;

        .el-avatar {
            cursor: pointer;
        }
        
    }
}
</style>   

改动说明:

  1. 脚本部分:使用 setup 函数来定义组件,利用 refcomputed 来处理状态和计算属性。
  2. Vuex:通过 useStore() 引入了 Vuex,获取状态和提交变更。
  3. 模板中的属性:直接使用响应式数据,无需在 data() 中定义。

以上就是将原有代码转换为 Vue 3 风格的示例!如果有其他问题,请随时告诉我!


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=19607

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?