项目中常用写法(前端)

这篇具有很好参考价值的文章主要介绍了项目中常用写法(前端)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

vue

项目中常用的书写方式

等待某个方法执行结束后,在执行

this.getCurrentAjInfo().then((results) => { 
})

判断js是不是undefined类型

typeof (aa) !== 'undefined'

父组件传值到子组件

父组件在create中获取接口数据,取到的值放到父组件的data中,如下把data的值传递给子组件

<comHeader  :hbfonts="hbfonts"  />

子组件接受值

props: [ 'hbfonts'],

state的值在标签中直接使用

 <span id="headerspan" v-show="hbfonts==1" class="fd-header-icon-span-3">{{$store.state.session.showName}}</span>

读取html,去掉字符串中的html标签

str.replace(/<[^>]+>/g, '')

字符串去掉中括号

aa.replace(/\[|]/g,'')

去掉双引号

aa.replace(/\"/g, "");

判断数组中是否包含某个值

//存在,flag1==0 不存在:flag2==-1
let barginFlag=[1,2,3,4];
let flag1= barginFlag.findIndex(item => item=== a)

在某个ui框架上的:text写判断

<aa-menu v-for="(item, index) in aa"  :key="item.key" :code="item.key" :text="`<i class='fd-aa icon-${index%10} ${item.key}' style='margin-right: 10px'></i><span class='${(item.name === 'aa' && onshow)?'fontred':''}'>${item.name}</span> `+ `<i class='${(item.name === 'aa' && onshow)?'fd-aa icon-11':''}' style='margin-left: 10px;width: 11px;height:14px;'></i>`" @click="handleTriggerClick(item)"></aa-menu>

数组截取前几条数据

articleList.slice(0,1)

vue运行打包

cd .. 
npm run build

vue打包之后放到nginx上运行

修改nginx的conf下的nginx.conf文件,修改端口号,修改代理地址

server {
        listen       10022;
        server_name  localhost;
}

location /aa/ {
           proxy_pass   http://192.168.33.44:8080;
        }

cmd命令查看端口号占用和杀掉占用进程:

>netstat -ano|findstr 10022

>taskkill/f /pid 17680

获取时间不是两位数字补全2位

this.hours = `00${data.getHours()}`.slice(-2)+ ':' + `00${data.getMinutes()}`.slice(-2)

elementui 表格透明

/*最外层透明*/
  /deep/ .el-table, /deep/ .el-table__expanded-cell{
    background-color: rgba(255,255,255,0.03);
    font-size: 14px;
    border: 0px;
  }
  /* 表格内背景颜色 */
  /deep/ .el-table th,
  /deep/ .el-table tr,
  /deep/ .el-table td {
    background-color: rgba(255,255,255,0.03);
    font-size: 14px;
    border: 1px solid rgba(255,255,255,0.16);
  }

  /deep/ .el-table tr,
  /deep/ .el-table td {
    color: #ffffff;
  }

  /deep/ .el-table th{
    color: #099cfe;
  }

  /deep/ .el-table tbody tr:hover > td {
    background-color: transparent !important;
  }
  /deep/ .el-table--enable-row-transition .el-table__body td,
  .el-table .cell {
    background-color: transparent;
  }

element ui 的级联 选择后不收起弹窗

<el-cascader @change="cascaderSelectChange" ref="cascaderRef"></el-cascader>
 
cascaderSelectChange() {
     // 自动收到下拉框
     this.$refs.cascaderRef.dropDownVisible = false
},

element ui 的级联 其他级别可选,最后一级不可选隐藏radio

.selectCell .el-cascader-panel .el-cascader-menu:nth-child(3){
  .el-radio{
    display: none;
  }
}

遍历求和

var datas =[
             { value: 188, name: '91-100分' },
             { value: 120, name: '85-90分' },
           ];
let total = datas.flat().reduce(function (preValue, n) {
                return preValue + n.value
            }, 0)

绝对定位居中: 自身的一半

transform: translate(-50%, -50%);

flex换行:

flex-wrap: wrap;

清除定时器:

window.clearTimeout(this.ds1);
clearInterval(this.timersd)

格式化时间:

$ npm install moment --save

在main.js中全局引入

import moment from "moment"
Vue.prototype.$moment = moment;
moment(new Date()).format('YYYY-MM-DD') >= moment(this.form.halfstart).format('YYYY-MM-DD')

保留两位小数:

parseFloat(0).toFixed(2),

过滤对象中某些值等于固定的值:

this.xwpjList = this.$store.getters.dictionaryList.filter(item => item.pcode === this.code);

按照对象中的某个值进行排序:

this.xwpjList.sort((a, b) => {
	return a.code-b.code
})

复制对象 生成新对象 ,aa值不发生改变:

let mtsjTemp = Object.assign({},this.aa,this.bb)

获取所有key值:

let keys = Object.keys(this.aa[0]);

两个对象比较删除掉不相同的属性:

Object.getOwnPropertyNames(mtsjTemp).filter((value)=>{
	if(keys.indexOf(value)==-1){
	  delete mtsjTemp[value];
	} else if(['nc','nm','nz'].indexOf(value)!=-1){
	  mtsjTemp[value] = this.timestampToTime(mtsjTemp[value]);
	}
});

跳转页面传参,另一个页面接收:

this.$router.push({
	name: '01FormView',
	params: {
	  _id: this.rowid,
	  button: 'update',
	  stage: this.stage,
	  rybs:this.rybs
	}
})
 if(this.$route.params.rybs == 0){
	res.jzjd = 0
}

父组件校验子组件的表单:

父组件

<xwpjForm :formCulumn="formCulumn" ref="pyRules" :formData="this.pyList" />
let pyFlag = this.$refs['pyRules'].validateForm(array);

子组件

<el-form :model="scope.row" ref="xwpjList" :rules="rules" class="demo-ruleForm" style="width:100%">
	<el-form-item :prop="items.disabled==true?items.prop:null" style="width:100%" v-if="!items.select">
	<el-input :autosize="{ minRows: 1, maxRows: 1}" type="textarea" :disabled="items.disabled ? scope.row[items.disabled] : true" style="width:100%;margin: 5px 0" v-model="scope.row[items.prop]"></el-input>
	</el-form-item>
</el-form>
validateForm (array) {
      let flag = null
      let flagArray =[];
      for(var i=0;i<this.$refs['xwpjList'].length;i++){
        this.$refs['xwpjList'][i].validate(valid => {
          this.defaultSelect(array);
          if (valid && this.selectChooseOrNo) {
            flagArray.push('true')
          } else {
            flagArray.push('false')
          }
        })
      }
      if(flagArray.indexOf('false')>=0){
        flag = false;
      } else {
        flag = true;
      }
      return flag
    },

时间格式转化:

timestampToTime(timestamp) {
      if(timestamp == null || timestamp == ''){
        return "";
      }
      var date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000
      var Y = date.getFullYear() + '-';
      var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';
      var D = date.getDate();
      return Y+M+D;
    },

子组件调用父组件方法:

子组件

<el-button  @click="formInsert(scope.$index, formData)" :disabled="chi.disabled ? scope.row[chi.disabled] : true" type="primary" plain >嘿嘿</el-button>
this.$emit('inrBtnClick', index, formData)

父组件

<p2023-formlist :formCulumn="formCulumn" ref="childRules" :formData="form.aa" @inrBtnClick="inrBtnClick"/>
inrBtnClick(index, rows){
// 内容        
},

父组件值改变后需要刷新子组件:

<grid-form
	:key="timer" // 关键
>
</grid-form>
data() {
	return {
		timer: '',
	}
}
this.timer = new Date().getTime();

父组件值改变后需要刷新清空子组件数据:

父组件

<grid-form
	:ref="t.prop"
>
</grid-form>
this.$refs.ear_corea[0].reset_data()

子组件

// 重置数据
    reset_data() {
      this.valueList = [];
    }

添加数据:

this.$set(this.rules,aa)

删除数据:

 object: {name: "xiaoming",age: 24,gender: "man"}
 this.$delete(this.object, "name")
 var b=[1,2,3,4]
 this.$delete(b,1)
 this.b=this.b.filter(item=>item!='2');
 let data=[{id:1,name:'张三'},{id:2,name:'李四'}];
 data=data.filter(item=>item.name!='张三');

清除某个具体的表单校验:

 this.rules['bs_tech'][0].required = false
 this.$refs['refform'].clearValidate(['bs_tech']);

对象合并去重后一个覆盖前一个的值:

this.tableData默认所有属性是空的,后端传递来的数据response覆盖掉this.tableData文章来源地址https://www.toymoban.com/news/detail-406490.html

 let fieldArr = [...this.tableData, ...response]
          this.tableData = Array.from(fieldArr.reduce((result, item) => result.set(item.mc, item), new Map()).values())

vue字符串分隔成数组后去掉空格和空值:

let a = 'www,mail , test,'
let m = a.split(",").map(el => el.trim()).filter(item => item.trim() != '')

到了这里,关于项目中常用写法(前端)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 前端常用 Vue3 项目组件大全

    Vue.js 是一种流行的 JavaScript 前端框架,它简化了构建交互式的用户界面的过程。Vue3 是 Vue.js 的最新版本,引入了许多新的特性和改进。在 Vue3 中,组件是构建应用程序的核心部分,它们可以重用、组合和嵌套。下面是一些前端开发中常用的 Vue3 项目组件。 1、Vue Router: Vue

    2024年02月10日
    浏览(10)
  • 进阶 vue自定义指令 vue中常用自定义指令以及应用场景,案例书写

    进阶 vue自定义指令 vue中常用自定义指令以及应用场景,案例书写

    除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外,Vue 还允许你注册自定义的指令 (Custom Directives)。 我们已经介绍了两种在 Vue 中重用代码的方式:组件和组合式函数。组件是主要的构建模块,而组合式函数则侧重于有状态的逻辑。另一方面,自定义指令主要是为了重用涉

    2024年02月15日
    浏览(7)
  • 前端以Json格式传递列表时的书写格式错误及解决方案

    报错 JSON parse error: Cannot deserialize value of type java.util.ArrayListcom.tzy.entity.ComponentOilProperties from Object value (token JsonToken.START_OBJECT ); nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize value of type java.util.ArrayListcom.tzy.entity.ComponentOilProperties from Object value (toke

    2024年02月11日
    浏览(7)
  • 前端uniapp块样式写法

    前端uniapp块样式写法

    2024年02月09日
    浏览(8)
  • 工作上常用的sql写法/函数

    10 :十进制 2:两位小数 100:除数 作用 where在前是对group by分组之前的筛选,having在后是对group by分组之后的筛选 eg 查找分组之后只有一个的数据 case 字段名 when 值 then 结果 … else 其余结果(默认值)end eg: case when 条件 then 结果 else 其余结果 end 作用 根据主查询的数据,每一

    2024年02月09日
    浏览(8)
  • Elasticsearch8常用查询api,java ElasticsearchClient写法和原生Rest DSL写法

    Java Client Rest Api Java Client Rest Api Java Client Rest Api Java Client Rest Api ? 用来匹配任意字符, * 用来匹配零个或者多个字符。 Java Client Rest Api Java Client Rest Api Java Client Java Client Rest Api

    2024年02月08日
    浏览(11)
  • k8s常用命令的缩写写法

    k8s 中,有不少命令是有缩写写法的,比如 kubectl get services  可以写成 kubectl get svc, 那么其它一些命令是否也存在对应的缩写呢?其实部分较长的命令都会有,参考下面表格 命令 缩写 kubectl get pods kubectl get po kubectl get services kubectl get svc kubectl get deployments kubectl get deploy kubectl

    2024年02月07日
    浏览(12)
  • tpwe兼容微擎小程序前端请求写法

    当使用TPWe兼容微擎小程序前端时,可以按照以下方式编写前端请求: 修改siteinfo.js下面的配置文件。 修改一下../we7/resource/js/util.js。 使用TPWe的API方法发送请求,并处理返回的数据。以下是一个示例代码,用于发起GET请求:

    2024年02月07日
    浏览(4)
  • junit单元测试mock常用写法-springboot与springmvc

    做单元测试时候,经常会mock一些方法,得到期望的返回值,这里记录一下常见的public、private、static方法,以及设计到的内部调用的方法 这里采用maven,引入powermock即可 所有单元测试的测试类都继成BaseTest即可 (1)springboot的示例 (2)springmvc的示例 有如下类需要编写单元测

    2024年02月02日
    浏览(8)
  • 【前端】vue3中引入class类的写法

    单独将一个类作为一个js文件,然后引入到vue3页面使用 使用的vue页面

    2024年04月13日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包