vueswitch的简单介绍
本篇文章给大家谈谈vueswitch,以及对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、关于vue,如何在v-for中动态生成样式?
- 2、vue结合store实现双语切换功能
- 3、vueswitchcase是同步还是异步
- 4、vue switch 函数判断
- 5、Vue element Switch @change事件死循环解决方式
- 6、vuea-switch开关组件不刷新
关于vue,如何在v-for中动态生成样式?
你可以绑定 dom 元素的 class 属性,但是你需要提前准备一些样式;
方法有很多的,我这里用氏腔计算属性
代码示例
div v-for="Mes in Messages"
p :class="MessClass(Mes)"{{Mes}}/p
/div
data()
{
return{
粗核悄Messages:["警告:你女朋友正在与其他异性聊天!","成功:一百块法定货币到账。","信息:你女朋友正在与其他岩渣异性聊天,你不慌吗?","危险:您的账户在异地登录。"]
}
},
计算属性
computed:{
MessClass()
{
return(Arg)={
switch(Arg.slice(0,3))
{
case "警告:":
return "Warning";
case "成功:":
return "Success";
case "信息:":
return "Info";
case "危险:":
return "Danger";
default:
return "Info";
}
}
}
},
css 样式
.Warning{
background-color:#E6A23C;
}
.Success{
background-color:#67C23A;
}
.Info{
background-color: #909399;
}
vue结合store实现双语切换功能
因为最近大众项目和新加坡的项目会涉及到国外用户,所以会用到双语切换功能,网上推荐使用vue-i18n,我抱着专研试一试的态度通过store实现双语切换功能,如果有更好的思路别忘了告诉本博主哦。
首先在自己项目的js目录下卖带创建CN.config,js和EN,config,js语言对照表(也可以用JSON文件)
在store用引入CN.config.js和EN.config.js,然后用sessionStorage保存一个状态,我将保存名命名为“lang_status”,因为才登录平台该字段为空,所以我就在state对象中用displayedLanguage变量通过判断lang_status是否等于2,不中丛芦等于就默认接受英语的JS文件对象郑枣
再在store下定义一个切换语言的方法switch_language,如果displayedLanguage中对象的ID为1说明是英语,那么就让displayedLanguage=CN,并且保存状态 sessionStorage.setItem('lang_status',2),同理一样;
再在js文件下新建一个getLanguage.js 用于获取store中的displayedLanguage中的对象
挂载到main.js中
这时候只需要在你需要的页面调用全局$getLanguage方法,一定要放到created中哦
切换语言方法
页面监听state中的displayedLanguage变量,并更新页面
好了,功能实现
记得按照自己项目结构进行排列对象
[img]vueswitchcase是同步还是异步
同步。因为没有支持异步处理不支持自动计算依赖state变化的值。所以vueswitchcase是同步旁银。同步是指对在一个系统中所罩启滚发生的事件(event)之间进行协调,物余在时间上出现一致性与统一化的现象。
vue switch 函数判断
switch (data.status) {
case "1":
//这里是值对应的处理
break;
case "2":
茄腔稿 //这里是值对应的处理
break;
default:
//这里是颤孝没有找到对应的值处圆宴理
break;
}
Vue element Switch @change事件死循环解决方式
在Vue项目中用了一个el-switch组件,点击后返枣触发事件,做出对应的操作.如果失败,swich再返回原来的值.
嗯.....逻辑上是没有错的.
错误使用方式一
el-switch v-model="startWithSystem" @change ="OnAutoStart(startWithSystem)"/el-switch
于是我看了文档,使用了change事件触发......
然后你就会发现,为什么风扇的转速特别快,浏览器无法点神仿击了....
F12的log打印不断的在滚动.
哦...死循环了
错误使用方式二
于是想到了click事件
el-switch v-model="startWithSystem" @click ="OnAutoStart(startWithSystem)"/el-switch
使用@是不行的,不工作,
错误使用方式三
el-switch v-model="startWithSystem" :click ="OnAutoStart(startWithSystem)"/el-switch
:是工作起来了,但是....会执行很多次....应该是页面的任何点击都被捕获了..这样肯定不行
正确的方式
使用change事件是不行的,这样不论你点击修改还是js修改,都会触发,它自身的点击事件是无效的,
那么将其放入一个div中, 使用父容器的@click事件 ,就可以好好工作了
```
div class="padRight"漏瞎拆 @click="OnAutoStart(startWithSystem)"
el-switch v-model="startWithSystem"/el-switch
/div
```
vuea-switch开关组件不刷新
vuea-switch开关组件不刷新因为组件重枝猛源叠了。vue中提供了组件缓存的功能,点击登录和注册时路由发生了变化,但组件并没有重新加载,这就导致组件还是原来的组件,它并没有重新创建。可以在“router-view”组件占位符中添加不知橡同的:key值,这样vue就会识别这是不同猛态的“router-view”,就会重新加载
关于vueswitch和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。