当前位置: 首页 > news >正文

温州哪里可以做企业网站友情链接是外链吗

温州哪里可以做企业网站,友情链接是外链吗,wordpress 秀主题,产品推广计划一.props验证 在封装组件时对外界传递过来的props数据进行合法性校验&#xff0c;从而防止数据不合法问题。 1.基础类型检查 String,Number,Boolean,Array,Object,Date,Function,Symbol 2.多个可能的类型 3.必须项校验 4.属性默认值 5.自定义验证函数 <template>&…

一.props验证

在封装组件时对外界传递过来的props数据进行合法性校验,从而防止数据不合法问题。

1.基础类型检查

String,Number,Boolean,Array,Object,Date,Function,Symbol

2.多个可能的类型
3.必须项校验
4.属性默认值
5.自定义验证函数
<template><div>父组件</div><DemoSon :msg="msg" :title="title" type="abc"></DemoSon>
</template>
<script>
import DemoSon from './son.vue'
export default {name:'demo',components:{DemoSon},data(){return{msg:'111',title:'abc'}}
}
</script><template><div>子组件</div><p>{{ msg }}{{ title }}</p>
</template>
<script>
export default {name:'demo-son',props:{msg:{type:[Number,String],required:true,default:10},title:String,type:{validator(value){// true成功,false失败return ['success','warning','danger'].indexOf(value)!==-1}}}
}
</script>

二.计算属性computed

计算属性本质上是一个function函数,可以监听data中数据的变化,并return一个计算后的值,供组件渲染dom时使用。

计算属性会缓存计算的结果,只有在计算属性的依赖项发生变化时,才会重新计算。

计算属性只能当作普通数据项使用,不能当作方法调用(不能使用括号调用)。

<template><div><input type="text" v-model.number="num"></div><div>{{ plus }}</div>
</template><script>export default {name:'demo',data(){return{num:111}},computed:{plus(){return  this.num*2}}}</script>
<template><div><table border><tr><td class="goodState">状态</td><td class="goodId">#</td><td class="goodName">名称</td><td class="goodPrice">单价</td><td class="goodNum">数量</td><td class="goodTime">价格</td><td class="goodAction">操作</td></tr><tr v-for="(item,index) in goods.data" :key="item.id"><td class="goodState"><input type="checkbox" v-model="item.state" :id="item.id"><label :for="item.id">{{item.state===true?"上架":"下架"}}</label></td><td class="goodId">{{index+1}}</td><td class="goodName">{{item.name}}</td><td class="goodNum">{{item.price}}</td><td class="goodNum">{{item.num}}</td><td class="goodTime">{{item.num*item.price}}</td><td class="goodAction"><b @click="addFn(item.id,item.num)">+</b><b @click="minusFn(item.id,item.num)">-</b></td></tr><tr><td>总数:{{ number }}</td><td>总计:{{ total }}</td></tr></table></div>
</template><script setup>
import { ref,reactive, computed } from "vue"
const goods=reactive({data:[{id:'1',name:'苹果',state:true,price:2,num:0,time:'2020-11-03 11:00:00'},{id:'2',name:'梨',state:true,price:2,num:0,time:'2020-11-03 11:00:00'},{id:'3',name:'香蕉',state:true,price:2,num:0,time:'2020-11-03 11:00:00'}]
})
const minusFn=(id,num)=>{if(num>0){for(let i=0;i<goods.data.length;i++){if(goods.data[i].id===id){goods.data[i].num= num-1}}
}
}
const addFn=(id,num)=>{for(let i=0;i<goods.data.length;i++){if(goods.data[i].id===id){goods.data[i].num= num+1}}
}
const number = computed(()=>{let n=0;goods.data.forEach((item)=>{if(item.state){n+=item.num}})return n;
})
const total = computed(()=>{let sum=0;goods.data.forEach((item)=>{if(item.state){sum+=item.num*item.price}})return sum;
})</script><style scoped lang="scss">td{width: 200px;height: 40px;}b{margin-right: 20px;}
</style>

三.自定义事件

1.声明自定义事件
2.触发自定义事件
3.监听自定义事件
<template><div class="card">{{ count }}<Son @changeCount="changeCount"></Son></div>
</template>
<script >
import Son from './son.vue'
export default{name:'index',components: {Son},data(){return{count:0}},methods:{changeCount(str){this.count = str}}
}
</script><template><button type="button" @click="clickFn">按钮</button>
</template>
<script>
export default{name:'son',emits:['changeCount'],methods:{clickFn(){this.$emit('changeCount',1)}}
}
</script>
<template><div class="card">{{ count }}<Son @changeCount="changeCount"></Son></div>
</template>
<script setup>
import { ref } from 'vue'
import Son from './son.vue'
const count = ref(0)
const changeCount = (str)=>{count.value = str
}
</script><template><button type="button" @click="clickFn">按钮</button>
</template>
<script setup>
const emit = defineEmits('changeCount')
const clickFn = () => {emit('changeCount',1)
}
</script>

四.组件上v-model

1.父传子

a.父组件通过v-bind属性绑定的形式,把数据传递给子组件

b.子组件中,通过props接受子组件传递过来的数据

<template><div>父组件</div><DemoSon :msg="msg"></DemoSon>
</template>
<script>
import DemoSon from './son.vue'
export default {name:'demo',components:{DemoSon},data(){return{msg:'111'}}
}
</script><template><div>子组件</div><p>{{ msg }}</p>
</template>
<script>
export default {name:'demo-son',props:{msg:{type:[Number,String],required:true,default:10}}
}
</script>
2.子传父

a.在v-bind指令前添加v-model指令

b.在子组件中声明emits自定义事件,格式为update:xxx

c.调用$emit()触发自定义事件,更新父组件中的数据

<template><div class="card">{{ count }}<Son v-model:number="count"></Son></div>
</template>
<script >
import Son from './son.vue'
export default{name:'index',components: {Son},data(){return{count:0}}
}
</script><template>{{ number }}<button type="button" @click="clickFn">按钮</button>
</template>
<script>
export default{name:'son',props:['number'],emits:['update:number'],methods:{clickFn(){this.$emit('update:number',this.number+1)}}
}
</script>

http://www.hkea.cn/news/4327/

相关文章:

  • 前端做网站的步骤廊坊seo推广
  • 电子商务网站建设需要的语言及特点6吉林seo基础
  • 中国做网站的公司杭州seo招聘
  • 重庆网络推广经理西安网站优化
  • 化妆品可做的团购网站有哪些沈阳seo推广
  • 动态网站开发语言国内seo服务商
  • wordpress插件手机河北百度seo
  • 珠海 网站 设计深圳市seo点击排名软件价格
  • 高效网站建设公司seo服务方案
  • 企业为什么要上市优化课程
  • 做网站下面会有小广告营销案例100例
  • seo搜索引擎优化薪资水平aso优化的主要内容为
  • 东莞企业名录大全seo外链是什么意思
  • 汕头网站建设技术托管友情链接搜读
  • 公司网站打开很慢成功的网络营销案例ppt
  • 网上推广哪家好郑州优化网站关键词
  • 网站上的3d怎么做的想学销售去哪培训
  • 专业网站建设怎么样打开百度一下的网址
  • 网站建设栏目规划重庆百度快照优化
  • wordpress主题打不开百度seo哪家公司好
  • 寮步镇网站仿做明星百度指数排行
  • 素材网站建设需要多少费用百度下载app
  • 360做网站经常打骚扰电话自媒体十大平台
  • 福建设计网站网络推广站
  • 做餐饮网站的目的与意义谷歌搜索引擎在线
  • 设计建设网站公司哪家好网络营销和传统营销的关系
  • 郑州网站建设老牌公司推广seo网站
  • 网站建设 齐鲁软件园百度投放广告一天多少钱
  • 在日本做色情网站百度站长中心
  • 怎么看网站哪个公司做的郑州网络推广公司排名