日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

Vitest 1.0 正式發(fā)布:Vue 團(tuán)隊(duì)打造的下一代測(cè)試框架!

來(lái)源: 責(zé)編: 時(shí)間:2023-12-06 09:18:51 223觀看
導(dǎo)讀12 月 5 日,由 Vue 團(tuán)隊(duì)打造的下一代測(cè)試框架 Vitest 正式推出 1.0 版本!Vitest 于 2021 年 12 月推出,至今已經(jīng)過(guò)去了兩年的時(shí)間,其發(fā)展速度可謂是非常迅速,目前在 npm 下載量已經(jīng)達(dá)到了每周 250w,并且還在呈現(xiàn)快速增長(zhǎng)的

S0O28資訊網(wǎng)——每日最新資訊28at.com

12 月 5 日,由 Vue 團(tuán)隊(duì)打造的下一代測(cè)試框架 Vitest 正式推出 1.0 版本!S0O28資訊網(wǎng)——每日最新資訊28at.com

Vitest 于 2021 年 12 月推出,至今已經(jīng)過(guò)去了兩年的時(shí)間,其發(fā)展速度可謂是非常迅速,目前在 npm 下載量已經(jīng)達(dá)到了每周 250w,并且還在呈現(xiàn)快速增長(zhǎng)的趨勢(shì),Github Star 數(shù)量達(dá)到了 10.7k。S0O28資訊網(wǎng)——每日最新資訊28at.com

S0O28資訊網(wǎng)——每日最新資訊28at.com

Vitest 是什么?

Vitest 是一個(gè)原生支持 Vite 的測(cè)試框架。Vitest 以其快速、簡(jiǎn)潔的測(cè)試解決方案脫穎而出,需要最少的配置。Vitest 與廣泛采用的JavaScript測(cè)試框架 Jest 完美契合,并能無(wú)縫集成到 Vue 應(yīng)用中。雖然它專為與 Vite 一起使用而設(shè)計(jì),但Vitest也可以獨(dú)立運(yùn)行,在應(yīng)用中提供了靈活性。由于 Vitest 和 Vite 使用相同的配置文件,因此將 Vitest 集成到 Vue 應(yīng)用中很簡(jiǎn)單。S0O28資訊網(wǎng)——每日最新資訊28at.com

S0O28資訊網(wǎng)——每日最新資訊28at.com

Vitest 的主要功能如下:S0O28資訊網(wǎng)——每日最新資訊28at.com

  • 與 Vite 通用的配置、轉(zhuǎn)換器、解析器和插件。
  • 使用與你的應(yīng)用程序相同的設(shè)置來(lái)運(yùn)行測(cè)試!
  • 智能文件監(jiān)聽模式,就像是測(cè)試的 HMR!
  • 支持對(duì) Vue、React、Svelte、Lit 等框架進(jìn)行組件測(cè)試。
  • 開箱即用的 TypeScript / JSX 支持
  • ESM 優(yōu)先,支持模塊頂級(jí) await
  • 通過(guò) Tinypool 使用 Worker 線程盡可能多地并發(fā)運(yùn)行
  • 使用 Tinybench 來(lái)支持基準(zhǔn)測(cè)試
  • 套件和測(cè)試的過(guò)濾、超時(shí)、并發(fā)配置
  • 支持 Workspace
  • Jest 的快照功能
  • 內(nèi)置 Chai 進(jìn)行斷言 + 與 Jest expect 語(yǔ)法兼容的 API
  • 內(nèi)置用于對(duì)象模擬(Mock)的 Tinyspy
  • 使用 jsdom 或 happy-dom 用于 DOM 模擬
  • 通過(guò) v8 或 istanbul 來(lái)輸出代碼測(cè)試覆蓋率
  • 類似于 Rust 語(yǔ)言的源碼內(nèi)聯(lián)測(cè)試
  • 通過(guò) expect-type 進(jìn)行類型測(cè)試

Vitest 1.0 更新內(nèi)容

重大變更

  • 添加對(duì)pool和poolOptions的支持,移除舊標(biāo)志
  • 支持多個(gè)并行child_process
  • 使快照更加美觀
  • 為子包設(shè)置vitest對(duì)等依賴范圍
  • 將最低 node 版本提升至 18,并匹配 Vite 5 的要求
  • 移除已棄用的 node 加載器
  • 將瀏覽器提供程序移到 @vitest/browser 包中
  • 移除EnhancedSpy類型,棄用SpyInstance,改進(jìn)模擬和 vi 文檔
  • runner: 正確處理自定義任務(wù),更新 runner hooks 命名
  • coverage:
  • 基于 glob 的覆蓋率閾值
  • 使用transformMode和基于工作區(qū)項(xiàng)目的源映射
  • 默認(rèn)啟用 coverage.all

新功能

  • 添加 Marko 示例,并包括 Marko 文件的代碼覆蓋率
  • 更新magic-string
  • 實(shí)現(xiàn)provide/inject API 以傳輸來(lái)自主線程的數(shù)據(jù)
  • 改進(jìn)expectTypeOf錯(cuò)誤消息
  • 添加test.sequential() api
  • 允許自定義池
  • 添加 --project 選項(xiàng)以限制正在運(yùn)行的項(xiàng)目
  • benchmark:將importTinybench移動(dòng)到runner中
  • browser:支持 "none" 提供程序,并更新lit示例以使用它
  • coverage:支持 /* v8 ignore... 忽略提示
  • expect:
  • 支持 expect.closeTo api
  • ToContain可以處理classList和Node.contains
  • 通過(guò)href比較 URL 對(duì)象
  • snapshot:添加配置快照目錄的選項(xiàng)
  • vite-node:支持 Vite 5 的import.meta.hot.off
  • vitest:
  • 暴露getBenchFn、getBenchOptions
  • 在測(cè)試期間運(yùn)行類型檢查
  • 過(guò)濾堆棧跟蹤
  • 將execArgv暴露給不同的池

Vitest 嘗鮮

準(zhǔn)備工作

要想在 Vue 項(xiàng)目中運(yùn)行自動(dòng)化組件測(cè)試,首先要使用以下命令初始化一個(gè) Vue 應(yīng)用:S0O28資訊網(wǎng)——每日最新資訊28at.com

npm create vite@latest vue-app --template vuecd vue-appnpm install

項(xiàng)目安裝完成后,運(yùn)行以下命令啟動(dòng)應(yīng)用:S0O28資訊網(wǎng)——每日最新資訊28at.com

npm run dev

在瀏覽器中打開 http://127.0.0.1:5173/,即可看到應(yīng)用程序成功運(yùn)行。S0O28資訊網(wǎng)——每日最新資訊28at.com

接下來(lái),使用以下命令來(lái)安裝 Vitest:S0O28資訊網(wǎng)——每日最新資訊28at.com

npm install -D vitest

安裝完成后,我們需要將 Vitest 添加到 package.json 文件中。在 package.json 文件中添加測(cè)試腳本:S0O28資訊網(wǎng)——每日最新資訊28at.com

"scripts": {  // ...   "test": "vitest", },

接下來(lái),打開 vitest.config.js 文件并添加以下代碼:S0O28資訊網(wǎng)——每日最新資訊28at.com

import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'// https://vitejs.dev/config/export default defineConfig({ plugins: [vue()], test:{   globals:true, }})

將 globals 屬性設(shè)置為 true 將允許在測(cè)試文件中訪問 Vitest API,而無(wú)需導(dǎo)入它們。S0O28資訊網(wǎng)——每日最新資訊28at.com

Test Utils 是一個(gè) Vue 測(cè)試庫(kù),提供了安裝 Vue 組件并與之交互的方法。使用以下命令安裝測(cè)試實(shí)用程序:S0O28資訊網(wǎng)——每日最新資訊28at.com

npm install --save-dev @vue/test-utils

我們應(yīng)該能夠在組件測(cè)試中模擬 DOM API。Vitest 目前支持happy-dom和jsdom。這里我們將使用 happy-dom。運(yùn)行下面的命令來(lái)安裝happy-dom:S0O28資訊網(wǎng)——每日最新資訊28at.com

npm install happy-dom@6.0.4

安裝完成后,在 package.json 文件中的測(cè)試腳本中添加--domS0O28資訊網(wǎng)——每日最新資訊28at.com

"scripts": {   // …   "test": "vitest --dom",  },

另外,我們需要將 happy-dom 添加到 vite.config.js 文件中,以使其在測(cè)試文件中全局可用:S0O28資訊網(wǎng)——每日最新資訊28at.com

test:{   // …   environment: 'happy-dom', }

創(chuàng)建 Vue 組件

接下來(lái),創(chuàng)建一個(gè)名為 GuessAge.vue 的簡(jiǎn)單組件,該組件使用戶能夠輸入自己的姓名,并使用 Agify.io API 根據(jù)輸入的姓名猜測(cè)用戶的年齡。S0O28資訊網(wǎng)——每日最新資訊28at.com

在 src/components 文件夾中,創(chuàng)建一個(gè) GuessAge.vue 文件并添加以下代碼:S0O28資訊網(wǎng)——每日最新資訊28at.com

<template>  <h1>{{ title }}</h1>  <div class="card">   <div style="width:400px;height:130px;margin-top:20px;border-style: dotted;" >   <br>    <span>名字: {{firstname}}</span> <br>    <span>年齡: {{age}}</span> <br>    </div><br><br>     <label> 輸入名字 </label><br>     <input type="text" v-model="search" style="font-size:20px;border-radius:10px;" placeholder=" Name ..."> <br> <br>    <button type="button" @click="getAge">猜年齡</button>    <br> <br> <br>    <input type="radio" value="pop"> <label>保存</label>  </div></template><script setup>import { ref } from 'vue'defineProps({  title: String})</script><script>export default {    data() {        return {            search:"",            firstname:"",            age:"",        }    },    computed: {       getAge() {        fetch('https://api.agify.io/?name='+ this.search)        .then(response => response.json())        .then(data => {            this.age = data.age            this.firstname = data.name            this.search=""        })        }    }}</script>

測(cè)試 Vue 組件的 props 和函數(shù)

現(xiàn)在,我們需要為組件創(chuàng)建一個(gè)測(cè)試文件。根據(jù)命名約定,測(cè)試文件名必須以組件名稱開頭,以 .spec.js 或 .test.js 結(jié)尾。當(dāng)測(cè)試多個(gè)組件時(shí),每個(gè)組件都應(yīng)該有一個(gè)測(cè)試文件。S0O28資訊網(wǎng)——每日最新資訊28at.com

在 Components 文件夾中創(chuàng)建一個(gè)名為 GuessAge.spec.js 的測(cè)試文件。該文件將包含 GuessAge 組件的簡(jiǎn)單測(cè)試腳本。讓我們測(cè)試 GuessAge 組件,看看它在安裝時(shí)是否接收到正確的 props。可以通過(guò)將以下代碼添加到 GuessAge.spec.js 文件來(lái)測(cè)試掛載時(shí) title 屬性的值:S0O28資訊網(wǎng)——每日最新資訊28at.com

import {mount} from "@vue/test-utils";import GuessAge from "../components/GuessAge.vue";// import { expect, test } from "vitest";const wrapper = mount(GuessAge);it("testing GuessAge component props", async () => {  expect(GuessAge.props.title).toContain("Guess User Age App");});

從 @vue/test-utils 導(dǎo)入 mount,允許將組件包裝到一個(gè)名為 Wrapper 的特殊對(duì)象中,它提供了各種測(cè)試選項(xiàng)。S0O28資訊網(wǎng)——每日最新資訊28at.com

注意:如果在 Vite 的配置文件中將globals的值設(shè)置為false,那么在測(cè)試文件中就應(yīng)該添加 import { expect, test } from "vitest"。S0O28資訊網(wǎng)——每日最新資訊28at.com

運(yùn)行以下命令以在監(jiān)聽模式下測(cè)試組件:S0O28資訊網(wǎng)——每日最新資訊28at.com

npm run test

S0O28資訊網(wǎng)——每日最新資訊28at.com

我們還可以使用 toBe('function') 斷言方法來(lái)檢查應(yīng)用中是否存在函數(shù),如下所示:S0O28資訊網(wǎng)——每日最新資訊28at.com

it("Test if data is a function", () => {  expect(typeof GuessAge.data).toBe("function");});

可以在終端中看到以下內(nèi)容:S0O28資訊網(wǎng)——每日最新資訊28at.com

S0O28資訊網(wǎng)——每日最新資訊28at.com

使用快照測(cè)試用例

快照用于跟蹤用戶界面的變化。典型的快照測(cè)試用例會(huì)渲染一個(gè)UI組件,獲取一個(gè)快照,并將其與測(cè)試文件旁邊的參考快照文件進(jìn)行比較。它將當(dāng)前的UI狀態(tài)與已建立的快照進(jìn)行比較。如果當(dāng)前狀態(tài)與已建立狀態(tài)不匹配,測(cè)試將失敗。S0O28資訊網(wǎng)——每日最新資訊28at.com

要運(yùn)行快照測(cè)試并跟蹤UI的變化,需要在GuessAge.spec.js測(cè)試文件中添加以下代碼:S0O28資訊網(wǎng)——每日最新資訊28at.com

test('snapshot UI testing', () => {   const wrapper = mount(GuessAge,{});   expect(wrapper.text()).toMatchSnapshot()})

由于Vitest支持熱模塊重載,每次修改測(cè)試文件時(shí)都不必運(yùn)行測(cè)試命令。可以在終端中看到以下內(nèi)容:S0O28資訊網(wǎng)——每日最新資訊28at.com

S0O28資訊網(wǎng)——每日最新資訊28at.com

模擬 HTTP 請(qǐng)求

在使用HTTP請(qǐng)求測(cè)試Vue組件時(shí),我們首先需要模擬網(wǎng)絡(luò)請(qǐng)求;否則,測(cè)試將失敗。使用 Mock Service Worker (MSW) 進(jìn)行模擬可以輕松地通過(guò)攔截測(cè)試中的請(qǐng)求來(lái)測(cè)試 HTTP 請(qǐng)求,而不需要更改任何應(yīng)用程序代碼。S0O28資訊網(wǎng)——每日最新資訊28at.com

使用以下命令來(lái)安裝 MSW:S0O28資訊網(wǎng)——每日最新資訊28at.com

npm install msw --save-dev

我們需要在 GuessAge.spec.js 測(cè)試文件中導(dǎo)入以下兩個(gè)依賴項(xiàng)才能使用 MSW:S0O28資訊網(wǎng)——每日最新資訊28at.com

import { setupServer } from 'msw/node'import { rest } from 'msw'

通過(guò)在GuessAge.spec.js測(cè)試文件中添加以下代碼來(lái)創(chuàng)建攔截HTTP請(qǐng)求的模擬服務(wù)器實(shí)例:S0O28資訊網(wǎng)——每日最新資訊28at.com

export const restHandlers = [   rest.get('https://api.agify.io/', (req, res, ctx) => {      return res(ctx.status(200), ctx.json([         {            age: 55,            name: "tope"         }      ]))   }),]const server = setupServer(...restHandlers)// 在所有測(cè)試之前啟動(dòng)服務(wù)beforeAll(() => server.listen({ onUnhandledRequest: 'error' }))// 在所有測(cè)試之后關(guān)閉服務(wù)afterAll(() => server.close())// 在每個(gè)測(cè)試后重置處理程序,對(duì)于測(cè)試隔離很重要afterEach(() => server.resetHandlers())

測(cè)試點(diǎn)擊事件

接下來(lái)檢查應(yīng)用中是否存在按鈕,以及單擊“猜年齡”按鈕是否會(huì)在獲取用戶年齡后清除輸入標(biāo)簽S0O28資訊網(wǎng)——每日最新資訊28at.com

test("有按鈕", () => {  expect(wrapper.find("button").exists()).toBe(true);});test("Button clicked", async () => {   const ac = await wrapper.get("button").trigger("click")   expect(wrapper.vm.search).toEqual("")})

可以在終端中看到以下內(nèi)容:S0O28資訊網(wǎng)——每日最新資訊28at.com

S0O28資訊網(wǎng)——每日最新資訊28at.com

覆蓋率測(cè)試

為了評(píng)估代碼的效果和質(zhì)量,Vitest支持通過(guò)c8和Istanbul實(shí)現(xiàn)本地代碼覆蓋率,從而對(duì)代碼性能進(jìn)行報(bào)告和分析。S0O28資訊網(wǎng)——每日最新資訊28at.com

為了配置和運(yùn)行覆蓋率測(cè)試,我們需要在vite.configure.js文件中添加以下內(nèi)容:S0O28資訊網(wǎng)——每日最新資訊28at.com

export default defineConfig({  plugins: [vue()],  test:{    globals:true,    coverage: {      provider: 'istanbul'    },    environment: 'happy-dom',  }})

此外,我們還需要在package.json文件中的腳本部分添加coverage,如下所示:S0O28資訊網(wǎng)——每日最新資訊28at.com

"scripts": {  // ...   "coverage": "vitest run --coverage" },

配置完成之后 ,接下來(lái)就使用以下命令安裝 Istanbul:S0O28資訊網(wǎng)——每日最新資訊28at.com

npm i -D @vitest/coverage-istanbul

當(dāng)執(zhí)行以下命令時(shí),測(cè)試文件將會(huì)運(yùn)行,Vitest 將在終端上顯示覆蓋率報(bào)告:S0O28資訊網(wǎng)——每日最新資訊28at.com

npm run coverage

S0O28資訊網(wǎng)——每日最新資訊28at.com

測(cè)試時(shí)間

在運(yùn)行測(cè)試時(shí),確保測(cè)試在合理的時(shí)間內(nèi)完成非常重要。有時(shí),一個(gè)測(cè)試可能需要太長(zhǎng)時(shí)間才能完成,這可能會(huì)導(dǎo)致問題并延遲測(cè)試套件的運(yùn)行。為了解決這個(gè)問題,Vitest提供了一個(gè)test-timeout選項(xiàng),允許為測(cè)試設(shè)置超時(shí)時(shí)間。該選項(xiàng)指定了測(cè)試在超過(guò)最大時(shí)間限制之前可以完成的最長(zhǎng)時(shí)間,否則將失敗并顯示超時(shí)錯(cuò)誤。S0O28資訊網(wǎng)——每日最新資訊28at.com

可以使用以下命令為所有測(cè)試設(shè)置超時(shí)時(shí)間并替換默認(rèn)時(shí)間:S0O28資訊網(wǎng)——每日最新資訊28at.com

npx vitest run --test-timeout=50000

該命令會(huì)將 Vitest 測(cè)試框架中測(cè)試的超時(shí)值設(shè)置為 50 秒,可以根據(jù)測(cè)試要求將此值替換為不同的時(shí)間值。S0O28資訊網(wǎng)——每日最新資訊28at.com

從 Jest 遷移到 Vitest

將應(yīng)用的測(cè)試從 Jest 遷移到 itest 非常簡(jiǎn)單。兩個(gè)測(cè)試框架使用類似的API,因此在遷移到 Vitest 時(shí),可能不需要對(duì)現(xiàn)有的代碼進(jìn)行重大更改。下面就來(lái)看看如何從 Jest 遷移到 Vitest。S0O28資訊網(wǎng)——每日最新資訊28at.com

首先,我們需要從項(xiàng)目中刪除 Jest,并通過(guò)運(yùn)行以下命令安裝 Vitest 以及所有必要的依賴項(xiàng):S0O28資訊網(wǎng)——每日最新資訊28at.com

npm uninstall jest --save-devnpm install vitest --save-devnpm install --save-dev @vue/test-utils

接下來(lái),我們需要在package.json文件中更新測(cè)試腳本,以使用Vitest而不是Jest。可以通過(guò)將測(cè)試腳本更改為Vitest來(lái)實(shí)現(xiàn):S0O28資訊網(wǎng)——每日最新資訊28at.com

"scripts": {  "test": "vitest",}

現(xiàn)在,運(yùn)行以下命令來(lái)測(cè)試應(yīng)用:S0O28資訊網(wǎng)——每日最新資訊28at.com

npm run test

如果在 Jest 測(cè)試代碼中使用了模塊模擬,需要將其更新為以下 Vitest 測(cè)試代碼:S0O28資訊網(wǎng)——每日最新資訊28at.com

// Jestjest.mock('./module-path', () => 'hello')// Vitestvi.mock('./module-path', () => ({  default: 'hello'}))

本文鏈接:http://www.www897cc.com/showinfo-26-38497-0.htmlVitest 1.0 正式發(fā)布:Vue 團(tuán)隊(duì)打造的下一代測(cè)試框架!

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: Electron 28.0.0 正式發(fā)布,跨平臺(tái)桌面應(yīng)用開發(fā)工具!

下一篇: CSS_Flex 那些鮮為人知的內(nèi)幕

標(biāo)簽:
  • 熱門焦點(diǎn)
  • 6月iOS設(shè)備性能榜:M2穩(wěn)居榜首 A系列只能等一手3nm來(lái)救

    沒有新品發(fā)布,自然iOS設(shè)備性能榜的上榜設(shè)備就沒有什么更替,僅僅只有跑分變化而產(chǎn)生的排名變動(dòng),畢竟蘋果新品的發(fā)布節(jié)奏就是這樣的,一年下來(lái)也就幾個(gè)移動(dòng)端新品,不會(huì)像安卓廠商,一
  • CSS單標(biāo)簽實(shí)現(xiàn)轉(zhuǎn)轉(zhuǎn)logo

    轉(zhuǎn)轉(zhuǎn)品牌升級(jí)后更新了全新的Logo,今天我們用純CSS來(lái)實(shí)現(xiàn)轉(zhuǎn)轉(zhuǎn)的新Logo,為了有一定的挑戰(zhàn)性,這里我們只使用一個(gè)標(biāo)簽實(shí)現(xiàn),將最大化的使用CSS能力完成Logo的繪制與動(dòng)畫效果。新logo
  • 使用LLM插件從命令行訪問Llama 2

    最近的一個(gè)大新聞是Meta AI推出了新的開源授權(quán)的大型語(yǔ)言模型Llama 2。這是一項(xiàng)非常重要的進(jìn)展:Llama 2可免費(fèi)用于研究和商業(yè)用途。(幾小時(shí)前,swyy發(fā)現(xiàn)它已從LLaMA 2更名為L(zhǎng)la
  • 一文搞定Java NIO,以及各種奇葩流

    大家好,我是哪吒。很多朋友問我,如何才能學(xué)好IO流,對(duì)各種流的概念,云里霧里的,不求甚解。用到的時(shí)候,現(xiàn)百度,功能雖然實(shí)現(xiàn)了,但是為什么用這個(gè)?不知道。更別說(shuō)效率問題了~下次再遇到,
  • 馮提莫簽約抖音公會(huì) 前“斗魚一姐”消失在直播間

    來(lái)源:直播觀察提起&ldquo;馮提莫&rdquo;這個(gè)名字,很多網(wǎng)友或許聽過(guò),但應(yīng)該不記得她是哪位主播了。其實(shí),作為曾經(jīng)的&ldquo;斗魚一姐&rdquo;,馮提莫在游戲直播的年代影響力不輸于現(xiàn)
  • 華為發(fā)布HarmonyOS 4:更好玩、更流暢、更安全

    在8月4日的華為開發(fā)者大會(huì)2023(HDC.Together)大會(huì)上,HarmonyOS 4正式發(fā)布。自2019年發(fā)布以來(lái),HarmonyOS一直以用戶為中心,經(jīng)歷四年多的發(fā)展HarmonyOS已
  • Counterpoint :OPPO雙旗艦戰(zhàn)略全面落地 高端產(chǎn)品銷量增長(zhǎng)22%

    2023年6月30日,全球行業(yè)分析機(jī)構(gòu)Counterpoint Research發(fā)布的《中國(guó)智能手機(jī)高端市場(chǎng)白皮書》顯示,中國(guó)智能手機(jī)品牌正在尋求高質(zhì)量發(fā)展,中國(guó)高端智能
  • 聯(lián)想小新Pad Pro 12.6將要推出,搭載高通驍龍 870 處理器

    聯(lián)想小新Pad Pro 12.6將于秋季新品會(huì)上推出,官方按照慣例直接在發(fā)布會(huì)前給出了機(jī)型的所有參數(shù)。聯(lián)想小新 Pad Pro 12.6 將搭載高通驍龍 870 處理器,重量為 5
  • 三翼鳥智能家居亮相電博會(huì),讓用戶體驗(yàn)更真實(shí)

    2021電博會(huì)在青島國(guó)際會(huì)展中心開幕中,三翼鳥直接把“家”搬到了現(xiàn)場(chǎng),成為了展會(huì)的一大看點(diǎn)。這也是三翼鳥繼9月9日發(fā)布了行業(yè)首個(gè)一站式定制智慧家平臺(tái)后的
Top 主站蜘蛛池模板: 大港区| 建平县| 屯昌县| 准格尔旗| 剑阁县| 阿瓦提县| 监利县| 太谷县| 堆龙德庆县| 吉木乃县| 崇礼县| 宣汉县| 大余县| 玉门市| 新安县| 福海县| 咸宁市| 琼海市| 台湾省| 漳平市| 瑞丽市| 深泽县| 仙游县| 黑水县| 贺州市| 拜城县| 汾阳市| 青冈县| 阿拉善右旗| 梅州市| 五指山市| 宜宾市| 齐河县| 沾益县| 青河县| 定远县| 锡林郭勒盟| 大英县| 安泽县| 平塘县| 宁明县|