最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

vue开发按钮组件需要准备哪些东西

来源:动视网 责编:小采 时间:2020-11-27 19:50:45
文档

vue开发按钮组件需要准备哪些东西

vue开发按钮组件需要准备哪些东西:这次给大家带来vue开发按钮组件需要准备哪些东西,vue开发按钮组件的注意事项有哪些,下面就是实战案例,一起来看一下。最近面试,被问到一个题目,vue做一个按钮组件;当时只是说了一下思路,回来就附上代码。解决思路:通过父子组件通讯($refs 和 pr
推荐度:
导读vue开发按钮组件需要准备哪些东西:这次给大家带来vue开发按钮组件需要准备哪些东西,vue开发按钮组件的注意事项有哪些,下面就是实战案例,一起来看一下。最近面试,被问到一个题目,vue做一个按钮组件;当时只是说了一下思路,回来就附上代码。解决思路:通过父子组件通讯($refs 和 pr


这次给大家带来vue开发按钮组件需要准备哪些东西,vue开发按钮组件的注意事项有哪些,下面就是实战案例,一起来看一下。

最近面试,被问到一个题目,vue做一个按钮组件;

当时只是说了一下思路,回来就附上代码。

解决思路:

  1. 通过父子组件通讯($refs 和 props)

  2. props接受参数, $refs调用子组件的方法

  3. 来达到点击提交改变按钮状态,如果不成功则取消按钮状态

在src/components/ 下建一个button.vue

<template>
<!-- use plane -->
<!-- 传入bgColor改变按钮背景色 -->
<!-- state切换button的状态 调用cancel()可以切换 -->
<!-- text为按钮文字 -->
 <p class="container">
 <button 
 @click="confirm"
 :disabled="state" 
 class="confirm" 
 :style="{background: btnData.bgColor}"
 >{{text}}</button>
 </p>
</template>
<script>
export default {
 data(){
 return {
 text: this.btnData.text,
 state: false,
 }
 },
 props: {
 btnData: {
 types: Array,
 default() {
 return {
 text: '确认',
 }
 }
 }
 },
 methods: {
 confirm(){
 this.text += '...'
 this.state = true
 //这里是激活父组件的事件,因为子组件是不会冒泡到父组件上的,必须手动调用$emit
 //相对应父组件要在调用该组件的时候,将其挂载到上面
 this.$emit("confirm")
 },
 cancel(){
 this.text = this.btnData.text
 this.state = false
 }
 }
}
</script>
<style lang="less" scoped>
.confirm {
 border: none;
 color: #fff;
 width: 100%;
 padding: 1rem 0;
 border-radius: 4px;
 font-size: 1.6rem;
 background: #5da1fd;
 &:focus {
 outline: none;
 }
}
</style>

在页面中调用:

<template>
 <p class="btn-box">
 <Btn 
 :btnData="{text: '确认注册'}"
 <!--这里就要挂载$emit调用的事件 @confirm="想要调用事件的名字"-->
 @confirm="confirm"
 ref="btn"
 ></Btn>
 </p> 
</template>
<script>
import Btn from '@/components/button'
export default {
 components: {
 Btn
 },
 methods: {
 confirm(){
 if(!this.companyName){
 this.$toast("公司名不能为空") 
 this.$refs.btn.cancel()
 }
 }
}
</script>

在这里,要注意一些细节:

1. button组件形成之后和其它p元素的间距,如果是在组件内定死是很难复用的。

2. 在复用的时候,在父组件中是改变不了子组件的样式的,如果要强制更改,单独写一个并去掉scoped。

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

JS左边列表转移右边

微信小程序分享页面后跳转回首页

文档

vue开发按钮组件需要准备哪些东西

vue开发按钮组件需要准备哪些东西:这次给大家带来vue开发按钮组件需要准备哪些东西,vue开发按钮组件的注意事项有哪些,下面就是实战案例,一起来看一下。最近面试,被问到一个题目,vue做一个按钮组件;当时只是说了一下思路,回来就附上代码。解决思路:通过父子组件通讯($refs 和 pr
推荐度:
标签: VUE 开发 按钮
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top