更新记录

1.0.0(2022-04-24)

  • 新发布

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

sn-uniapp-starter

介绍

自定义 uniapp starter,打造自己的uniapp模板项目

特性

  • 基于vuex自定义国际化,支持vue2/vue3,vue/nvue
  • 支持 unplugin-auto-import
  • weex-v-show支持vue2/vue3,参见v-show-view组件
  • 支持pinia,见pinia分支

使用

国际化
1. 基于vuex实现,易扩展,兼容@dcloudio/uni-i18n(即uni-ui也支持国际化)
2. API设计兼容uniapp官方国际化方案
  • 获取当前语言

    • vue2

      this.$i18n.locale
    • vue3

      import { useLang } from '@/hooks/lang.js'
      const { i18n } = useLang()
      i18n.locale
  • 设置语言

    • vue2

      this.$i18n.locale = 'en'
    • vue3

      import { useLang } from '@/hooks/lang.js'
      const { i18n } = useLang()
      i18n.locale = 'en'
  • template中使用

    • 使用前提

      vue3需要导入 @/hooks/lang.js

      <text>{{$t('app.name')}}</text>
  • nvue中使用

    • vue2

      import extendsGlobal from '@/global.js'
      export default extendsGlobal({
          data() {
              return {}
          }
      })
    • vue3

      <script setup>
          import { useLang } from '@/hooks/lang.js'
          const { i18n, $t } = useLang()
          const changeLocale = locale => {
              i18n.locale = locale
          }
      </script>

    其次,使用$t('key')

    <text>{{$t('app.name')}}</text>
  • 支持动态切换语言包

    vue2

    this.$i18n.messages = {
        en: {
            'app.name': 'test'
        },
        'zh-Hans': {
            'app.name': '测试'
        },
        'zh-Hant': {
            'app.name': '測試'
        }
    }

    vue3

    i18n.messages = {
        en: {
            'app.name': 'test'
        },
        'zh-Hans': {
            'app.name': '测试'
        },
        'zh-Hant': {
            'app.name': '測試'
        }
    }
组件
v-show-view - 类似v-show指令组件的view
  • vue2

    <v-show-view :show="showTest">
        <text style="font-size: 50rpx;">weex-show 内容</text>
    </v-show-view>
    export default {
        data() {
            return {
                showTest: true
            }
        }
    }
  • vue3

    <v-show-view :show="showTest">
        <text style="font-size: 50rpx;">weex-show 内容</text>
    </v-show-view>
    <script setup>
    const showTest = ref(true);
    </script>

已知问题

从HBX 3.4.3 Alpha开始,app-nvue已经支持vue3

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问