Vue.js - 需要在不重新加载的情况下切换方向(rtl 到 ltr,反之亦然)
Vue.js - Need to switch direction (rtl to ltr and vice versa) without reload
我正在使用 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 */
}
我正在使用 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 */
}