最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 手摸手之vue单选组件

    正文概述 掘金(长安道)   2021-01-11   449

    • 书写组件来代替重复性的开发,可能是现在最常用的开发方式
    • 本次是一个单选组件,现在基本上可以说是个ui框架都有单选组件。换句话说,你连一个单选组件都没有好意思说自己是个ui框架(开玩笑)
    • 那么为什么还要自己写呢? 不说社区有多少选择,单说写了 好不好用,我也不敢打包票,但是别人的哪有自己的香的(狗不嫌家贫,丑儿子也是儿不是)

    开始

    • 其实之前我看ui框架的单选组件时,我总是在想它是怎么写的? 后来某次翻看vue文档时 我就明白了?!
    • 在vue的文档中有一章叫做 表单输入绑定 其中有一章是介绍单选按钮的。

    手摸手之vue单选组件

    • 单选按钮的值绑定 同其他是一样的 通过 v-model 来绑定, 布尔值
    • 到这里可能有的人会说了 就这? 直接看文档不香吗? 文档自然是香的 但是有多少人会认真去看呢?

    自定义单选(支持 自定义组件 v-model )

      <template>
      <!--  一些简单布局  没啥好说的  :id="uuid + item.key" 是防止重复id,id 重复会出现 点a b相应的情况 -->
        <div class="radioButtonGroup">
          <div class="radioButtonItem" v-for="(item, index) in dataList"  :key="index">
            <input type="radio"
                   :id="uuid + item.key"
                   :value="item.key"
                   v-model="picked"
                   @change="$emit('change', picked)">
            <label :for="uuid + item.key">{{item.value}}</label>
          </div>
        </div>
      </template>
    
      <script>
      export default {
        name: "index",
        // 组件自定义 v-model
        model: {
          prop: 'active', // 绑定的参数
          event: 'change' // 触发的事件
        },
        // 接收参数
        props: {
          active: {
            type: [String, Number, Boolean], // 定义参数类型
            required: true  // 参数必填验证
          },
          dataList: { // 生成单选按钮的数组
            type: Array,
            default: []
          }
        },
        data () {
          return {
            picked: 1,
            uuid: ''
          }
        },
        created() {
          this.uuid = this.toolSet.uuid() // 生成非重复id
          this.picked = this.active // 设置默认选中数据
        }
      }
      </script>
    
      <style lang="stylus" scoped>
      .radioButtonGroup{
        display flex
        .radioButtonItem{
          // 隐藏 单选按钮的选中 ⚪
          input[type='radio'] {
            display none
            cursor: pointer;
            position: relative;
            visibility: hidden;
          }
    
          // 更改单选按钮的样式
          label{
            display inline-block
            padding 0 1vw
            height 3vh
            line-height 3vh
            margin-right 2px
            cursor pointer
            color #ffffff
            background #3E649C
            border 1px solid #142F82
          }
    
          // 更改单选按钮的选中样式
          input[type='radio']:checked + label{
            color #ffffff
            background #142F82
            border 1px solid #3E649C
          }
        }
      }
    
      </style>
    
    
    • 效果大概是 长这样(丑是丑了点,但是你可以自己改啊!)

    手摸手之vue单选组件


    起源地下载网 » 手摸手之vue单选组件

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元