vue实现密码隐藏

Vue 实现密码隐藏
在 Vue 中实现密码隐藏功能,可以通过动态切换输入框的 type 属性(password 或 text)来实现。以下是具体实现方法:
方法一:使用 v-model 和 v-if 切换输入框类型
<template>
<div>
<input
:type="showPassword ? 'text' : 'password'"
v-model="password"
placeholder="输入密码"
/>
<button @click="togglePassword">
{{ showPassword ? '隐藏密码' : '显示密码' }}
</button>
</div>
</template>
<script>
export default {
data() {
return {
password: '',
showPassword: false
};
},
methods: {
togglePassword() {
this.showPassword = !this.showPassword;
}
}
};
</script>
方法二:使用图标切换密码可见性
<template>
<div class="password-field">
<input
:type="showPassword ? 'text' : 'password'"
v-model="password"
placeholder="输入密码"
/>
<span class="toggle-icon" @click="togglePassword">
{{ showPassword ? '👁️' : '👁️🗨️' }}
</span>
</div>
</template>
<script>
export default {
data() {
return {
password: '',
showPassword: false
};
},
methods: {
togglePassword() {
this.showPassword = !this.showPassword;
}
}
};
</script>
<style>
.password-field {
position: relative;
display: inline-block;
}
.toggle-icon {
position: absolute;
right: 10px;
top: 50%;
transform: translateY(-50%);
cursor: pointer;
}
</style>
方法三:使用第三方库(如 Font Awesome)
如果需要更专业的图标,可以引入 Font Awesome:
<template>
<div class="password-field">
<input
:type="showPassword ? 'text' : 'password'"
v-model="password"
placeholder="输入密码"
/>
<font-awesome-icon
:icon="showPassword ? 'eye-slash' : 'eye'"
@click="togglePassword"
class="toggle-icon"
/>
</div>
</template>
<script>
import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome';
import { faEye, faEyeSlash } from '@fortawesome/free-solid-svg-icons';
export default {
components: {
FontAwesomeIcon
},
data() {
return {
password: '',
showPassword: false,
icons: {
faEye,
faEyeSlash
}
};
},
methods: {
togglePassword() {
this.showPassword = !this.showPassword;
}
}
};
</script>
注意事项
- 确保密码输入框的
type初始值为password,以默认隐藏密码。 - 可以通过 CSS 美化输入框和切换按钮的样式。
- 如果需要更复杂的逻辑(如密码强度验证),可以结合计算属性或自定义指令实现。
以上方法均能实现密码隐藏与显示的功能,具体选择取决于项目需求和设计风格。







