javascript - Vue.js - 需要在不重新加载的情况下切换方向(rtl 到 ltr,反之亦然)
问题描述
我正在使用 Vue.js 和 vue-i18n 在我的项目中切换语言,而无需刷新。但是,当我想在阿拉伯语和其他任何内容之间切换时,我需要将网站的设计从(从右到左)更改为(从左到右),反之亦然。
目前制作它是为了让我需要刷新才能加载我的 rtl.scss 文件:
这是在刷新时加载 css 的代码:
let locale = VueCookie.get('locale') || 'en'
if (locale === 'ar') {
require('rtl.scss')
}
这是使页面刷新的代码:
if (newLocale === 'ar' || oldLocale === 'ar') {
window.location.reload()
}
解决方案
离开 Jacob Goh 的评论,您可以执行以下操作:
将您的第一个片段更改为:
require('rtl.scss')
let locale = VueCookie.get('locale') || 'en'
if (locale === 'ar') {
document.querySelector('body').classList.toggle('rtl');
}
而你的第二个是:
if (newLocale === 'ar' || oldLocale === 'ar') {
document.querySelector('body').classList.toggle('rtl');
}
最后将您的 rtl.scss 文件编辑为:
body.rtl {
/* Old scss */
}
推荐阅读
- javascript - 从jquery中的div中删除特定单词
- c++ - Why does putting const on the left side of an ampersand valid when referring to a pointer but not on the right?
- flutter - How can i listen to a stream and then pass it to Streambuilder?
- javascript - Assigning uploaded files from google form in appropriate google drive folder
- node.js - Properly handling Google OAuth with separated frontend and backend
- javascript - 为什么 Javascript 不能与 Django HTML 一起使用?
- python - docker中的容器路径是什么?
- c# - 如何获取所有超过 N 分钟的文件?
- python - “图像尺寸太大”错误在 python 中保存颤动图并剪裁
- python - 返回日期之间的行仅间歇性地工作