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

解讀單選框和復(fù)選框的區(qū)別(涉及computed的緩存)

 更新時(shí)間:2025年06月16日 09:27:21   作者:檸檬樹^-^  
這篇文章主要介紹了單選框和復(fù)選框的區(qū)別(涉及computed的緩存),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

單選框和復(fù)選框的區(qū)別

  • 單選框(Radio Button) 允許用戶從給定的選項(xiàng)中選擇一個(gè)選項(xiàng)。用戶只能選擇其中一個(gè)選型,而且一旦選擇一個(gè)選型,在沒有其他交互的情況下無法取消選擇。通常,單選框用于提供一組相關(guān)但互斥的選項(xiàng),例如選擇性別時(shí),男和女就是互斥的選項(xiàng)。
  • 復(fù)選框(CheckBox) 允許用戶從給定的選項(xiàng)中選擇一個(gè)或多個(gè)選項(xiàng)。用戶可以同時(shí)選擇多個(gè)選項(xiàng),也可以取消之前的選項(xiàng)。復(fù)選框通常用于提供一組相互獨(dú)立的選項(xiàng),例如在購物車中選擇多個(gè)產(chǎn)品時(shí),用戶可以同時(shí)選擇多個(gè)復(fù)選框。

注意:

  • 在uniapp開發(fā)時(shí),如果想要使用radio單選框組件設(shè)置勾選的狀態(tài),因?yàn)閞adio組件在微信開發(fā)文檔中并沒有change事件,既然沒有可以使用最傳統(tǒng)的方式-點(diǎn)擊事件

需求:當(dāng)點(diǎn)擊radio讓當(dāng)前的狀態(tài)改變

  • 首先給radio設(shè)置點(diǎn)擊事件,并使radio的當(dāng)點(diǎn)擊的時(shí)候取反
import Vue from 'vue'
import Vuex from 'vuex'

// 插件的方式來使用
Vue.use(Vuex)

// 創(chuàng)建一個(gè)store對象并暴露出去
const store= new Vuex.Store({
    state:{
        isCheck:true,
    },
    mutations:{
        updateCheck(state,isCheck){
            state.isCheck=isCheck
        }
    }
})
export default store
<view>
  <radio @click="changeCheck(isChecked)" :checked="isChecked"></radio>
</view>

<script>
   ecport default{
      computed:{
         isChecked(){
            return JSON.parse(JSON.stringfy(this.$store.state.isCheck))
     }
   },
      methods:{
       changeCheck(value){
          value=!value
          console.log(value)
      }
   }
}
</script>

注意:

  • 通過打印出value發(fā)現(xiàn),isChecked的值確實(shí)在點(diǎn)擊的時(shí)候發(fā)生變化,但是在小程上當(dāng)前點(diǎn)擊的radio狀態(tài)卻沒有發(fā)生變化

思考:

是什么原因,讓radio狀態(tài)沒有發(fā)生變化?

提示:

  • 計(jì)算屬性的特點(diǎn)是什么?

解答:

  • 計(jì)算屬性的其中一個(gè)特點(diǎn)是:可緩存與非可緩存:計(jì)算屬性默認(rèn)是可緩存的,這意味著當(dāng)計(jì)算屬性所依賴的數(shù)據(jù)不變時(shí),多次訪問該屬性會(huì)返回緩存的結(jié)果,而不會(huì)觸發(fā)重復(fù)計(jì)算。
  • 緩存:在Vue.js中,計(jì)算屬性的緩存默認(rèn)是開啟的,只要計(jì)算屬性所依賴的數(shù)據(jù)沒有變化,多次訪問該屬性會(huì)返回緩存的結(jié)果,而不會(huì)重復(fù)計(jì)算。通俗的說就是當(dāng)?shù)谝淮稳〕鲈瓟?shù)據(jù),會(huì)把數(shù)據(jù)放置在緩存中,將來再次訪問的時(shí)候,只要原數(shù)據(jù)沒有變,就會(huì)從緩存中去找

在上述案例中

計(jì)算屬性的作用是根據(jù)內(nèi)部依賴的數(shù)據(jù),自動(dòng)計(jì)算出一個(gè)結(jié)果返回,但是isChecked內(nèi)部依賴的數(shù)據(jù)是從vuex深拷貝出來的數(shù)據(jù)對象,vuex數(shù)據(jù)變化了,計(jì)算屬性才會(huì)去計(jì)算

但是注意的是,在點(diǎn)擊事件changeCheck中,value!=value并沒有改變vuex中的數(shù)據(jù),value來自isChecked,isChecked不是vuex中的數(shù)據(jù),是通過深拷貝得到的,所以修改的是isChecked的值

只要計(jì)算屬性做了深拷貝,那么修改計(jì)算屬性中對象的屬性值,就不會(huì)影響原數(shù)據(jù),自然也就不會(huì)觸發(fā)計(jì)算屬性的更新

  • 所以要改變vuex里的數(shù)據(jù)還需要通過commit來觸發(fā)
<script>
   ecport default{
      methods:{
       changeCheck(value){
          value=!value
          console.log(value)
          this.$store.commit('updateCheck',this.isChecked)
      }
   }
}
</script>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • js創(chuàng)建數(shù)據(jù)共享接口——簡化框架之間相互傳值

    js創(chuàng)建數(shù)據(jù)共享接口——簡化框架之間相互傳值

    很多框架存在父子關(guān)系,操作起來十分麻煩,很多同學(xué)經(jīng)常出現(xiàn)這樣悲催的代碼
    2011-10-10
  • Require.js的基本用法詳解

    Require.js的基本用法詳解

    require.js是一個(gè)js腳本加載器,它遵循AMD(Asynchronous Module Definition)規(guī)范,實(shí)現(xiàn)js腳本的異步加載,不阻塞頁面的渲染和其后的腳本的執(zhí)行,并提供了在加載完成之后的執(zhí)行相應(yīng)回調(diào)函數(shù)的功能
    2017-07-07
  • js獲取提交的字符串的字節(jié)數(shù)

    js獲取提交的字符串的字節(jié)數(shù)

    js計(jì)算字符串的字節(jié)數(shù)的代碼
    2009-02-02
  • 常用限制input的方法的js代碼

    常用限制input的方法的js代碼

    常用限制input的方法的js代碼...
    2007-03-03
  • 用js+iframe形成頁面的一種遮罩效果的具體實(shí)現(xiàn)

    用js+iframe形成頁面的一種遮罩效果的具體實(shí)現(xiàn)

    用js形成頁面的一種遮罩效果,選擇想要進(jìn)行遮罩的窗口,在這里想要遮罩的是一個(gè)iframe窗口,具體的實(shí)現(xiàn)如下,感興趣的朋友可以參參考下
    2013-12-12
  • TypeScript接口與泛型全面精講

    TypeScript接口與泛型全面精講

    接口是一系列抽象方法的聲明,是一些方法特征的集合,這些方法都應(yīng)該是抽象的,需要由具體的類去實(shí)現(xiàn),然后第三方就可以通過這組抽象方法調(diào)用,讓具體的類執(zhí)行具體的方法,泛型是靜態(tài)類型語言的基本特征,允許將類型作為參數(shù)傳遞給另一個(gè)類型、函數(shù)、或者其他結(jié)構(gòu)
    2022-10-10
  • JavaScript中Array.find()方法的使用與技巧

    JavaScript中Array.find()方法的使用與技巧

    在JavaScript中,Array.find是一個(gè)高效且易用的數(shù)組查找方法,和其他遍歷方法相比,Array.find不僅能更簡潔地找到符合條件的第一個(gè)元素,返回的元素是原數(shù)組中的引用,本文給大家介紹了JavaScript中Array.find()方法的使用與技巧,需要的朋友可以參考下
    2025-02-02
  • JS獲取下拉列表所選中的TEXT和Value的實(shí)現(xiàn)代碼

    JS獲取下拉列表所選中的TEXT和Value的實(shí)現(xiàn)代碼

    本篇文章主要是對JS獲取下拉列表所選中的TEXT和Value的實(shí)現(xiàn)代碼進(jìn)行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-01-01
  • 使用js畫圖之餅圖

    使用js畫圖之餅圖

    這篇文章主要介紹了使用js繪制幾何圖形系列教程的繪制餅圖篇,需要的朋友可以參考下
    2015-01-01
  • 用幾道面試題來看JavaScript執(zhí)行機(jī)制

    用幾道面試題來看JavaScript執(zhí)行機(jī)制

    這篇文章主要介紹了JavaScript的執(zhí)行機(jī)制,對此感興趣的同學(xué),可以參考下
    2021-04-04

最新評(píng)論

九寨沟县| 徐汇区| 贵定县| 时尚| 合川市| 汤原县| 简阳市| 张家界市| 长阳| 洛宁县| 元谋县| 太原市| 鹿邑县| 蕉岭县| 盐亭县| 绥阳县| 中山市| 夏津县| 武夷山市| 麻城市| 雅安市| 宁乡县| 霞浦县| 永年县| 永善县| 原阳县| 兴安盟| 泽州县| 长宁县| 克什克腾旗| 克什克腾旗| 吉首市| 霍州市| 桑植县| 周至县| 延安市| 嘉定区| 南华县| 彭阳县| 拜泉县| 唐河县|