亲宝软件园·资讯

展开

vue中的局部过滤器和全局过滤器

苗苗大佬 人气:0

v-model:绑定的value

v-bind:绑定的type

<html>
  <head>
      <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  </head>
  <body>
    <div id="app">
      <p>{{ msg }}</p>
      <div v-show="showInput">
          <p>请选择自己的性别:</p>
          <input type="radio" name="sex"  value="man" /> 男
          <input type="radio" name="sex"  value="woman" /> 女
      </div>
      <div v-if="showInput">
        <input type="radio" name="sex"  value="man" /> 男
        <input type="radio" name="sex"  value="woman" /> 女
      </div>
      <div v-else>
        <p>请自行输入自己的性别:</p>
        <input v-bind:value="sex" type="text" placeholder="请输入其他内容 "/> 
        <input :value="sex" :type="button"/> 
      </div>
      <input type="button" value="click me" v-on:click="clikeme">
      <input type="button" value="显示/隐藏radio" @click="showInput=!showInput">
      <div>
          <input type="text" v-model="inputText" placeholder="请输入内容" />
          <input type="text" v-model="inputText" placeholder="请输入内容" />
          <p>{{ inputText|checkIsNullorEmpty }}</p>
      </div>
      <div>
          <input v-model="sexText" type="radio" name="sex"  value="man" /> 男
          <input v-model="sexText" type="radio" name="sex"  value="woman" /> 女
          <p>您选择的性别为:  {{ sexText }}</p>
          <p>您选择的性别为:  {{ sexText|sexFilter }}</p>
        </div>
      <div>
        <p v-for="(a,b) in dataList">{{b}},{{a}}</p>
        <p v-for="a in dataList">{{a}}</p>
      </div>
      <div>
        <select v-model="selectValue" name="name" id="name">
          <option v-for="(item,index) in dataList" :value="index"> {{ item }}</option>
        </select>
        <p> 选中的用户是:{{ selectValue|selectFilter(dataList) }}</p>
      </div>
    </div>
  
    <script>
    // js的注释
    // console.log("11111")
    const vm = new Vue({
      el: '#app', // el代表vue主体
      // eslint编码规范
      // 定义参数的时候,值必须用单引号
      // 方法名和括号之间需要一个空格
      // 如果有 多个参数,逗号后面需要一个空格
      data () {
        return {
          msg:  '这是一段信息',
          showInput: true,
          sex: '我也不知道',
          button: 'button',
          inputText: '',
          sexText: '',
          dataList: [
            'xiaozhang',
            'xiaowang',
            'xiaohong'
          ],
          selectValue: 0
        }
      },
      methods: {
        clikeme() {
          console.log("abcd")
        }
      },
      filters: {
        // 有参过滤器,有参过滤器的参数是被修饰的那个值自身+传递的参数
        selectFilter:function (sid,dataList){
          console.log('sid:',sid)
          console.log(dataList)
          return dataList[sid]
        },
        // 无参过滤器,无参过滤器的参数是被修饰的那个值自身
        checkIsNullorEmpty(val){
          if (val === null || val === ''){
            return '暂无数据'
          } else {
            return val
          }
        },
        sexFilter(sex){
          if(sex === 'man'){
            return '男性'
          } else if (sex ===  'woman'){
            return '女性'
          }
        }
      }
    })
   
    </script>
  </body>
</html>

全局过滤器:

<html>
  <head>
      <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  </head>
  <body>
    <div id="app">
      <p>{{ msg }}</p>
      <div v-show="showInput">
          <p>请选择自己的性别:</p>
          <input type="radio" name="sex"  value="man" /> 男
          <input type="radio" name="sex"  value="woman" /> 女
      </div>
      <div v-if="showInput">
        <input type="radio" name="sex"  value="man" /> 男
        <input type="radio" name="sex"  value="woman" /> 女
      </div>
      <div v-else>
        <p>请自行输入自己的性别:</p>
        <input v-bind:value="sex" type="text" placeholder="请输入其他内容 "/> 
        <input :value="sex" :type="button"/> 
      </div>
      <input type="button" value="click me" v-on:click="clikeme">
      <input type="button" value="显示/隐藏radio" @click="showInput=!showInput">
      <div>
          <input type="text" v-model="inputText" placeholder="请输入内容" />
          <input type="text" v-model="inputText" placeholder="请输入内容" />
          <p>{{ inputText|checkIsNullorEmpty }}</p>
      </div>
      <div>
          <input v-model="sexText" type="radio" name="sex"  value="man" /> 男
          <input v-model="sexText" type="radio" name="sex"  value="woman" /> 女
          <p>您选择的性别为:  {{ sexText }}</p>
          <p>您选择的性别为:  {{ sexText|sexFilter }}</p>
        </div>
      <div>
        <p v-for="(a,b) in dataList">{{b}},{{a}}</p>
        <p v-for="a in dataList">{{a}}</p>
      </div>
      <div>
        <select v-model="selectValue" name="name" id="name">
          <option v-for="(item,index) in dataList" :value="index"> {{ item }}</option>
        </select>
        <p> 选中的用户是:{{ selectValue|selectFilter(dataList) }}</p>

      </div>
      <div>
        <p>{{count|miao}} </p>
        <input type="button" value="add add" @click='addValue'/>

      </div>
   
    </div>
  
    <script>
     Vue.filter('miao',function(val)
     { return val+=val
     })
    // js的注释
    Vue.filter('add',function(val){ val+=val
})    // console.log("11111")
    const vm = new Vue({
      el: '#app', // el代表vue主体
      // eslint编码规范
      // 定义参数的时候,值必须用单引号
      // 方法名和括号之间需要一个空格
      // 如果有 多个参数,逗号后面需要一个空格
      data () {
        return {
          msg:  '这是一段信息',
          showInput: true,
          count:0,
          sex: '我也不知道',
          button: 'button',
          inputText: '',
          sexText: '',
          dataList: [
            'xiaozhang',
            'xiaowang',
            'xiaohong'
          ],
          selectValue: 0
        }
      },
      methods: {
        clikeme() {
          console.log("abcd")
        },
        addValue(){
          this.count+=1
        }
      },
      filters: {
        // 有参过滤器,有参过滤器的参数是被修饰的那个值自身+传递的参数
        selectFilter:function (sid,dataList){
          console.log('sid:',sid)
          console.log(dataList)
          return dataList[sid]
        },
        // 无参过滤器,无参过滤器的参数是被修饰的那个值自身
        checkIsNullorEmpty(val){
          if (val === null || val === ''){
            return '暂无数据'
          } else {
            return val
          }
        },
        sexFilter(sex){
          if(sex === 'man'){
            return '男性'
          } else if (sex ===  'woman'){
            return '女性'
          }
        }
      }
    },
)
   
    </script>
  </body>
</html>

加载全部内容

相关教程
猜你喜欢
用户评论