最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue3中reactive的對(duì)象清空所引發(fā)的問題解決方案(清空不了和清空之后再去賦值就賦值不了)

 更新時(shí)間:2025年02月19日 09:54:08   作者:肖肖肖麗珠  
在使用reactive定義的變量時(shí),直接賦值會(huì)失去響應(yīng)式,為了清空?filters并確保響應(yīng)式,可以使用Object.assign({},?filters)或者遍歷對(duì)象逐個(gè)清除屬性,本文介紹vue3中reactive的對(duì)象清空所引發(fā)的問題解決方案(清空不了和清空之后再去賦值就賦值不了),感興趣的朋友一起看看吧

let filters = reactive({
  status:''
});

我想清空filters的內(nèi)容。給接口傳參的時(shí)候保證filters是個(gè)空對(duì)象。

所以使用filters={}。

頁(yè)面上的確清空了。但是發(fā)現(xiàn)賦值一直沒辦法成功。我明明有下拉。點(diǎn)擊某個(gè)下拉選項(xiàng)確一直選不中。沒辦法回填了。

因?yàn)閞eactive定義的變量重新賦值相當(dāng)于重新創(chuàng)建了一個(gè)新的變量,就會(huì)失去響應(yīng)式。

看網(wǎng)上寫法還有Object.assign({},filters)。這樣的頁(yè)面上的兩個(gè)filters的確也清空了。但是如果我在js里面新增了別的filters并沒有綁定到dom上。比如我還想有個(gè)參數(shù)filters.name。那樣使用Object.assign({},filters)。實(shí)際上是清楚不掉這個(gè)name的值的。

還是一個(gè)個(gè)循環(huán)清除對(duì)象吧

const clearFilters(filters) {
    for (const key in filters) {
      if (filters.hasOwnProperty(key)) {
        delete filters[key];
      }
    }
}

調(diào)用clearFilters(filters)

<el-form ref="formRef" :inline="true" :model="filters" class="card table-search">
  <div class="search-title">{{ route.name }}</div>
  <div class="search_content">
    <div class="searchCol">
        <el-form-item label="" prop="orgName">
          <el-autocomplete
            v-model="filters.orgName"
            :trigger-on-focus="false"
            value-key="orgName"
            :fetch-suggestions="querySearch"
            clearable
            class="inline-input w-50"
            placeholder="請(qǐng)輸入機(jī)構(gòu)"
            @select="handleSelect"
          />
        </el-form-item>
      <el-form-item label="" prop="status">
        <el-select
          v-model="filters.status"
          placeholder="請(qǐng)選擇啟用狀態(tài)"
          style="width: 240px"
          clearable
        >
          <el-option  :value="0" label="啟用"></el-option>
          <el-option :value="1" label="停用"></el-option>
        </el-select>
      </el-form-item>
    </div>
    <div class="search_btn">
      <el-form-item class="operation">
        <el-button type="primary" @click="search"> 查詢</el-button>
        <el-button @click="reset"> 清空</el-button>
      </el-form-item>
    </div>
  </div>
</el-form>
let filters = reactive({});
const formRef = ref();
const allOrgs=ref([
{orgName:'機(jī)構(gòu)1',orgCode:'1'},
{orgName:'機(jī)構(gòu)2',orgCode:'2'},
{orgName:'機(jī)構(gòu)3',orgCode:'3'}
])
const querySearch = (queryString: string, cb: any) => {
  const results = queryString ? allOrgs.value.filter(createFilter(queryString)) : allOrgs.value;
  cb(results);
};
const createFilter = (queryString: string) => {
  return (thisOrg) => {
    return thisOrg.orgName.indexOf(queryString) != -1;
  };
};
const handleSelect = (item) => {
  filters.orgCode = item.orgCode;
};
//訪問接口
const getTableList = () => {
  let param= {param:{...filters} };//這里后端希望如果沒有搜索條件就傳個(gè)空對(duì)象param:{}這樣的格式。
  regionPage(newParams);
};
const search = () => {
  if(filters.orgName==""){
    delete filters.orgName;
    delete filters.orgCode;
  }
  if(filters.status===""){
    delete filters.status;
  }
  getTableList();
};
const reset = () => {
  //Object.assign({},filters) 這里可能導(dǎo)致filters.orgCode沒有清除掉
 // filters={} 這里會(huì)導(dǎo)致頁(yè)面失去響應(yīng)式。清除內(nèi)容后再去回填選擇不上的問題
  clearFilters(filters)  //使用這個(gè)才正確
  console.log("filters",filters)
  formRef.value.resetFields();
  getTableList();
};
 const clearFilters(filters) {
    for (const key in filters) {
      if (filters.hasOwnProperty(key)) {
        delete filters[key];
      }
    }
}

到此這篇關(guān)于vue3中reactive的對(duì)象清空所引發(fā)的問題解決方案(清空不了和清空之后再去賦值就賦值不了)的文章就介紹到這了,更多相關(guān)vue3 reactive賦值問題內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 一定要知道的 25 個(gè) Vue 技巧

    一定要知道的 25 個(gè) Vue 技巧

    這篇文章主要給大家分享將 prop 限制為類型列表、默認(rèn)內(nèi)容和擴(kuò)展點(diǎn)、使用引號(hào)觀察嵌套值、知道何時(shí)使用 v-if、單作用域 slot 的簡(jiǎn)寫、有條件地渲染slot等25 個(gè)Vue 技巧,下文是下相關(guān)資料,需要的朋友可以參考一下
    2021-11-11
  • vue3使用vue-router嵌套多級(jí)路由的方法

    vue3使用vue-router嵌套多級(jí)路由的方法

    Vue3 嵌套路由的使用和 Vue2 相差不大,主要的區(qū)別是 Vue3 的路由實(shí)例化使用了 createApp() 方法,所以實(shí)例化路由時(shí)需要傳入根組件,這篇文章主要介紹了vue3使用vue-router嵌套路由(多級(jí)路由),需要的朋友可以參考下
    2023-12-12
  • vue中$set用法詳解

    vue中$set用法詳解

    在vue中,并不是任何時(shí)候數(shù)據(jù)都是雙向綁定的,解決數(shù)據(jù)沒有被雙向綁定我們可以使用?vm.$set?實(shí)例方法,該方法是全局方法?Vue.set?的一個(gè)別名,這篇文章主要介紹了vue中$set用法詳細(xì)講解,需要的朋友可以參考下
    2022-12-12
  • Vue.js系列之項(xiàng)目結(jié)構(gòu)說明(2)

    Vue.js系列之項(xiàng)目結(jié)構(gòu)說明(2)

    這篇文章主要介紹了Vue.js系列之項(xiàng)目結(jié)構(gòu)說明(2)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01
  • Vue和React有哪些區(qū)別

    Vue和React有哪些區(qū)別

    這篇文章主要介紹了Vue和React有哪些區(qū)別,幫助大家更好的理解和學(xué)習(xí)JavaScript框架,感興趣的朋友可以了解下
    2020-09-09
  • Vue input輸入框回車以后自動(dòng)刷新頁(yè)面(直播程序)

    Vue input輸入框回車以后自動(dòng)刷新頁(yè)面(直播程序)

    這篇文章主要介紹了直播程序,Vue input輸入框回車以后自動(dòng)刷新頁(yè)面,適用場(chǎng)景是在輸入框輸入字符并按下回車鍵搜索時(shí),刷新頁(yè)面,需要的朋友參考下實(shí)現(xiàn)代碼
    2023-01-01
  • Vue上傳組件vue Simple Uploader的用法示例

    Vue上傳組件vue Simple Uploader的用法示例

    本篇文章主要介紹了Vue上傳組件vue Simple Uploader的用法示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2017-08-08
  • vue項(xiàng)目使用axios封裝request請(qǐng)求的過程

    vue項(xiàng)目使用axios封裝request請(qǐng)求的過程

    這篇文章主要介紹了vue項(xiàng)目使用axios封裝request請(qǐng)求,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • vue quill editor 使用富文本添加上傳音頻功能

    vue quill editor 使用富文本添加上傳音頻功能

    vue-quill-editor 是vue項(xiàng)目中常用的富文本插件,其功能能滿足大部分的項(xiàng)目需求。這篇文章主要介紹了vue-quill-editor 富文本添加上傳音頻功能,需要的朋友可以參考下
    2020-01-01
  • 教你使用vue3寫Json-Preview的示例代碼

    教你使用vue3寫Json-Preview的示例代碼

    這篇文章主要介紹了用vue3寫了一個(gè)Json-Preview的相關(guān)知識(shí),引入后直接<json-preview?v-model="jsonData"></json-preview>就可以使用了,本文通過示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論

白城市| 木里| 台州市| 陆河县| 揭东县| 武功县| 阳朔县| 马公市| 乐平市| 左贡县| 赤峰市| 南阳市| 雅江县| 女性| 庆云县| 阿拉善左旗| 广东省| 长春市| 合阳县| 航空| 大名县| 宿迁市| 英山县| 施秉县| 凤翔县| 白河县| 陇川县| 哈巴河县| 娄烦县| 石家庄市| 饶河县| 望奎县| 定州市| 曲阳县| 新和县| 北宁市| 满洲里市| 阳城县| 宽城| 德格县| 青田县|