webstorm+vue+tailwind制作小表单

1.创建vue项目使用webstorm
2.安装 tailwind

3.创建tailwind.config.css ,postcss.config.js

module.exports = {
  purge: [],
  darkMode: false, // or 'media' or 'class'
  theme: {
    minWidth: {
      '0': '0',
      '1/4': '25%',
      '1/2': '50%',
      '3/4': '75%',
      'full': '100%',
    },
    width:{
      '95/100':'95%',
      '1/4':'25%',
      '1/2':'50%'
    }
  },
  variants: {
    extend: {},
  },
  plugins: [],
}

const purgecss = require('@fullhuman/postcss-purgecss')({
    content: [
        './src/**/*.html',
        './src/**/*.vue',
        './src/**/*.jsx',
    ],

    // Include any special characters you're using in this regular expression
    defaultExtractor: content => content.match(/[\w-/:\\.]+(?<!:)/g) || []
})

module.exports = {
    plugins: [
        require('tailwindcss'),
        require('autoprefixer'),
        ...process.env.NODE_ENV === 'production'
            ? [purgecss]
            : []
    ]
}

4.修改相关代码 APP.vue引入component 新建window.vue

<template>
  <div class="md:container md:mx-auto w-95/100  shadow-md m-auto p-2.5">
    <h3 class="text-center font-bold">Infomation Collect Form</h3>
    <div class="flex my-1.5">
      <label class="w-1/4">name:</label><input name="name" v-model="formData.name" class="border border-red-500 border-dashed rounded hover:border border-purple-500" autocomplete="off">
    </div>
    <div class="flex my-1.5">
      <label class="w-1/4">age:</label><input name="age" v-model="formData.age" class="border border-red-500 border-dashed rounded hover:border border-purple-500" type="number">
    </div>
    <div class="flex my-1.5">
      <label class="w-1/4">gender:</label>
      <input type="radio" name="gender" value="1" v-model="formData.gender" class="my-auto ml-2.5">male
      <input type="radio" name="gender" value="2" v-model="formData.gender" class="my-auto ml-2.5">female
    </div>

    <div @click="send" class="rounded-full py-2 px-6... text-center bg-gradient-to-r from-red-500 to-blue-600 text-white w-1/2 mx-auto bg-opacity-50 hover:bg-blue-600">submit</div>
    <div class=" shadow-md text-red-600 bg-white py-2 text-center fixed  font-thin ml-16 px-1.5" v-if="messages">{{messages}}
    <div class="text-center text-gray-600" @click="deleteMessages">OK</div>
    </div>

  </div>


</template>

<script>
import axios from "axios";
export default {
  name: "window",
  data(){
    return {
      messages:'',
      formData:{
        name:"",
        age:'',
        gender:''
      },

    }

  },
  methods:{
    deleteMessages(){
      this.messages = ""
    },
    send()
    {
      if(!this.formData.age || !this.formData.gender || !this.formData.name){
        this.messages = "PLEASE FILL ALL THE BLANK"
        return
      }

      axios({
        method: 'post',
        data:this.formData,
        url: 'data/success.json'
      }).then(function (res) {
        if(res.data.status === 1){
          this.messages = res.data.message
        }
      });
    }
  }
}
</script>
<template>
  <div id="app" class="border-green-100 h-screen">
    <window msg="Its a window"/>
  </div>
</template>
<script>
import window from './components/window.vue'

export default {
  name: 'App',
  components: {
    window
  }
}
</script>


最终结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值