首页 > 其他分享 >vue特性

vue特性

时间:2023-09-14 14:24:13浏览次数:35  
标签:SizeChange vue val 特性 paging 组件 pages PageChange

1.组件的模块化开发

1.1 组件注册局部

首先在创建一个vue页面作为组件,这里就以分页组件来演示:

<!-- 分页展示 -->
          <el-pagination
            background
            style="margin: 50px auto"
            @size-change="handleSizeChange"
            @current-change="handleCurrentChange"
            :page-sizes="[5, 10, 15, 20]"
            :page-size="pages.size"
            :current-page="pages.page"
            layout="sizes,prev, pager,next,jumper,total"
            :total="pages.total"
          >
          </el-pagination>
                
        <script>
export default {
    data() {
        return {
        }
    },
    props:['pages'],
    methods: {
        handleSizeChange(val) {
        this.$emit("pageinfo",{"PageChange":this.pages.page,"SizeChange":val})
       
      },
      handleCurrentChange(val) {
         this.$emit("pageinfo",{"PageChange":val,"SizeChange":this.pages.size})
      
      },
    },

}
</script>

 

在主页面组件中的script标签中添加进行注册:

import paging from '分页组件的路径位置'

 

在主页面组件中添加局部组件:

在主页面组件中的钩子下继续添加:

components:{
"my-pasing":pasing
}

 

最后在想添加组件的位置处写上注册组件的标签调用即可:

<my-pasing></my-pasing>

 

1.2 注册全局组件

在main.js文件中进行组件的全局配置:

import paging from '组件的路径位置'
Vue.component('my-paging',paging)

【注:Vue.component('my-paging',paging) 这里面起名字是有要求的】

 

最后在主页面组件中,在想要添加分页组件处调用写上:

<my-pasing></my-pasing>

即注册全局组件完成!

 

2.不同组件间传值

2.1父传子

在父组件:

export default {
    data() {
        return {
        test:"测试",
        }
<my-pasing :name="test"></my-pasing>

在子组件的data下获取父组件传来的值:

props:["name"],

 

 

分页组件父传子:

<my-page :pages="pages" @pageinfo="getData"></my-page>

子组件获取:

props:['pages'],

 

2.2 子传父

子组件绑定数据: this.$emit("绑定的变量供父组件调取",{"PageChange":this.pages.page,"SizeChange":val})

methods: {
        handleSizeChange(val) {
        this.$emit("pageinfo",{"PageChange":this.pages.page,"SizeChange":val})
       
      },
      handleCurrentChange(val) {
         this.$emit("pageinfo",{"PageChange":val,"SizeChange":this.pages.size})
      
      },
}

 

父组件调用取值:@PageChange=“变量”

<!-- 全局分页组件 -->
      <my-page :pages="pages" @pageinfo="getData"></my-page>

方法调用:

 //分页组件
        getData(obj){
            this.pages.page = obj.PageChange
            this.pages.size = obj.SizeChange
            this.info()
        }

 

3. vue功能需要

3.1 修改功能需要

 <el-button size="small" type="warning" @click="update(scope.$index, scope.row)">修改</el-button>
 update(index,row) {
        console.log(row);
        this.form = Object.assign({}, row);
        this.dialogFormVisible = true
      },

 

3.2  循环列表需要

    <el-form-item label="员工部门" prop="dept">
      <el-select v-model="form.deptid">
        <el-option v-for="jk in deptdata" :key="jk" :label="jk.depa" :value="jk.eid"></el-option>
      </el-select>
    </el-form-item>

以上便是vue特性中的内容,如有漏缺请在下方留言告知,我会及时补充 

标签:SizeChange,vue,val,特性,paging,组件,pages,PageChange
From: https://www.cnblogs.com/9--1/p/17701927.html

相关文章

  • app直播源码,Vue 禁止输入框输入空格
    app直播源码,Vue禁止输入框输入空格 <template> <div>  <input   type="text"   v-model="text"   @input="(e)=>text=e.target.value.replace(/\s/g,'')"  > </div></template><scri......
  • 万字长文带你全面掌握Vue3
    在2020年9月19日,vue更新了3.0的正式版,不知不觉,已经过去了好几个月了,作为一位前端切图仔,是时候开始学习了,每次抱着准备学、再等等、明天说的想法,成功在发布了两个多月的时候来认真学习了一波,这里来总结一下vue3到底有哪些更新,来帮各位没有时间去了解vue3的朋友来一次快速入门。如何......
  • vue-unsaved-changes-dialog 在桌面页面上,弹出窗会跟随鼠标显示
    简介及使用教程这是一个漂亮的未保存变更对话框,有以下特点:有保存、丢弃和取消三个按钮在桌面页面上,弹出窗会跟随鼠标显示显示隐藏动画流畅智能避免弹出在窗口边缘并且随窗口大小调整自动适应完全自适应:在移动设备上全屏显示键盘可导航可访问所有的文案都可以替换更......
  • vue项目打包编译后如何修改后台请求地址
    1、在public文件夹下新建config.js文件2、config.js文件中,编写配置地址代码 3、在index中引入js文件 4、使用config.js中的变量,vue页面,js页面都可以用window.setURL.publicBaseUrl ......
  • vue的model选项
    vue中的v-model指令实现了表单的双向绑定,官网例子:<inputtype="text"v-model="message"/><p>{{message}}</p>其实v-model只是语法糖,真正的实现形式:<inputtype="text":value="message"@input="message=$event.target.value&......
  • Vue二维码组件
    1.前言该组件依赖qrcode.js与element-ui支持二维码大小配置,点击大图预览该组件以vue文件形式进行封装,需要配置httpVueLoader插件进行引入,其他格式请自行更改源码2.使用方法引入依赖<linkhref="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.13/theme-chalk/index......
  • vue2实现pc端自适应分辨率
    思路:使用lib-flexible结合postcss-pxtorem实现第一步在项目utils下建立flexible.js文件(直接下载则不用新建该文件)第二部复制以下代码到刚建好的文件中或者直接yarninstalllib-flexible-pc-y//基于libflexible用来适配pc端(function(win,lib){ vardoc=win.docu......
  • VueX写法对比
    原始写法<template><div><h1>当前求和为:{{sum}}</h1><selectv-model.number="n"><optionvalue="1">1</option><optionvalue="2">2</opti......
  • 【Vuejs】Date()常用方法
    Date()常用方法vardate=newDate()console.log(date);//FriOct29202114:18:13GMT+0800(中国标准时间)console.log(date.getMonth());//获取月份(0-11,0代表1月,所以在显示当前时间的时候需要date.getMonth()+1)console.log(date.getYear());......
  • vue实现tab标签选中
    tabs实现<template><div><divv-for="(item,index)intabs":key="index"class="coursespecialtyView-tabs-txt":class="{active:isActive(index)}"@click="changeTab(item......