亚厦前端-ys-vue 学习笔记

目录

1、各属性作用
2、Vue实例及结构
3、Vue组件引用
4、tab页处理
5、表单
6、Grid
7、下拉选择框
8、时间选择器
9、多选框
10、按钮
11、提示框
 
 

一、各个属性作用

:代表 v-bind:的缩写,v-bind表示绑定属性(任何属性),是单项数据流(vue=>页面)
v-model 也是绑定数据(必须是有value属性的),是双向数据流(vue<=>页面)
@click="“代表 v-on:click=”"的缩写,v-on表示绑定事件
v-text:innerText

v-html:innerHTML

v-if:是否插入元素

v-show:是否隐藏元素

v-for :表达式循环,组件:v-for=“item in array” 数据源: return [“apple”,“banana”,“orange”]
展示: {{ item}} 就会重复三遍,高级用法: :class=“item.score”,其他属性也可以用item内的值
除了item,还有index、key、val等属性

option详解

option : 根属性之一,绑定data中返回的option,可选择的有(data函数成员,methods对象成员
,模板template,挂载元素el,生命周期钩子,props属性声明,computed计算成员, watch监视成员)

option详解-选项:watch监视

watch监视是一个对象,键是需要观察的表达式,值可以是

1.回调函数,

2.值也可以是方法名,

3.或者包含选项的对象。

ps:表达式暂时可以理解为一个可以得到值的式子

Ⅰ回调函数,来监视一个值的变化(监视data函数体的变量)
如:

  data () {
    return {
      replaceList: []
    }
  },
  watch: {
    replaceList: function (val, oldVal) {
      console.log('replaceList changed')
    }
  }

Ⅱ第2种形式:”值也可以是方法名“,可以把watch的函数移到methods内。

则上面的形式可以改为:

  data () {
    return {
      replaceList: []
    }
  },
  watch: {
    replaceList: 'changed'
  },
  methods: {
    changed: function (val, oldVal) {
      console.log('replaceList changed')
    }
  }

Ⅲ包含选项的对象

如:上面两种就等同于

  data () {
    rerurn {
      replaceList: 1
    }
  },
  mounted: function () {
    this.$watch('replaceList',function(val, oldVal){
        console.log('replaceList changed')
    })
  },
  methods: {
  
  }

option详解-选项:computed计算成员

虽然在Mustache语法内可以使用表达式,即{{}}。比如为数字前加入¥符号,可以使用表达式:

{{‘¥’+money}}
在vue-cli脚手架的.vue组件中
实现RMB前加上美元符号
 
<template>
  <input v-model="money"> // 响应式的
  <span>{{RMB}}</span> // {{}}中可以是变量,也可以是方法名
</template>
 
<script>
  data () {
    rerurn {}
  },
  computed: {
    RMB: function () {
      return '¥'+ this.money
    }
  }
</script>

ref和refs属性

ref 被用来给DOM元素或子组件注册引用信息。引用信息会根据父组件的 $refs 对象(持有已注册的所有子组件的信息)进行注册。如果在普通的DOM元素上使用,引用信息就是元素; 如果用在子组件上,引用信息就是组件实例。
注意:只要想要在Vue中直接操作DOM元素,就必须用ref属性进行注册。
例如:

this.$refs.refName ==  document.getElementById("refId")//这两个是一回事,但是前者会减少获取dom节点的消耗

这样可以直接操作注册的组件(或者叫DOM元素),但是需要注意的是,由于$refs不是响应式,渲染后才存在,所以不要用于绑定数据,且不要用于模板和属性计算中。

二、vue实例

对于一个vue对象来说:

var vm = new Vue({
        el: '#vue',//挂载的页面元素ID
        template: "<div><h1>{{site}}</h1></div>",//页面入口
        data: {
            site: "学习VUE",
            url: "www.test.com",
            alexa: "10000"
        },//传统返回数据,但实例会生成多个
        data: function(){
        	return {
        		site: "学习VUE",
            	url: "www.test.com",
            	alexa: "10000"
        	}
        },//常用返回数据,实例不会产生多个
        components:{//声明要包含的组件
        	app : App, //key是组件名,value是组件对象
        },
        methods: {
            details: function() {
                return  this.site + " - 学的不仅是技术,更是梦想!";
            }
        }
    });

创建vue实例后,输出该实例,此时可在其他组件使用该实例(也可以直接输出一整套实例对象)

export default vm

然后其他模块引用

import other-component from "./other-component";

三、Vue组件

可直接使用

Vue.component('my-component',{template:"<div><h1>666</h1><div>"});

运用:

<my-component ref="com"></my-component>//明显的引用子组件

一个模块中引用另一个模块

import other-component from "./other-component";
components: {other-component},

四、tab页的使用

 <ys-el-tabs  v-model="activePage"  @tab-remove="removeTab">
      <el-tab-pane label="数据维护" name="mainWin"  >
      </el-tab-pane>
  	  <el-tab-pane v-for="(tab,index) in editeTabs" :key="tab.tabName"
                   :label="$store.state.currencyContractStore.currentTabTitle"
                   :name="tab.tabName" :closable="true">
       <other-component></other-component>//另一个模块名,子组件
      </el-tab-pane>
</ys-el-tabs>

五、表单

动态表单:

<ys-form-v2  :option="formOption" ref="mainForm" @init-end="test" >
<el-row>//一行
<el-form-item label="乙方"></el-form-item>
<ys-title title="工程项目信息"></ys-title>
</el-row>
</ys-form-v2>

静态表单:

<ys-el-form :data-model="$store.state[storeId].contractCommonFormData"
                ref="form"
                :validation="formValidation"
    >

普通表单:(区别??)

<el-form></el-form>

六、表格Grid:

<ys-grid :option="mainGridOption" ref="mainGrid"  @init-end="mainGridOptionInitEnd"></ys-grid>

动态Grid数据源:(需配置grid构建器)

	data: function(){
		return {
			mainGridOption: {
          		dataWindowId: "dataWindowId",
          		buttonsFunc: {
            		editSupplier: (vm, gridVm, item) => {
            	},
            	showSupplier: (vm, gridVm, item) => {
            	}
          	}
        },
     }

静态Gird数据源:

	data: function(){
		return {
			mainGridOption: {
          		
          	}
        },
     }

grid的操作

1、获取grid的全部数据和选中数据

let gridAllData = this.$refs.gridOptionName.getData();
let gridSelectData = this.$refs.gridOptionName.getSelectedItems();

2、给grid加一行数据

this.$refs.gridOptionName.addItem(item);

3、删除grid中的某一行数据和选中的数据。

this.$refs.gridOptionName.deleteItem(item);//删除指定数据行

const selectedItems = this.$refs.gridOptionName.getSelectedItems();
selectedItems.forEach( item  => {
       this.$refs.gridOptionName.deleteItem(item);
});//删除所有选中行

4、查询grid数据

let queryParam = {"field1":"test","field2":"test2"};
that.$refs.gridOptionName.defaultRetrieve(queryParam);

七、下拉选择器(可以套在el-form-item中)

<ys-data-selector :option="projectSelectorOption"
                            prop="projectNo"
                            :readonly="isComboxReadOnly"
                            ref="projectSelectorOption"
                            policy_id="projectSelector"
                            @select="comboBoxSelector"
                            v-model="projectNo"
                            init-id="projectSelectorControl"
          ></ys-data-selector>

八、时间选择器(可以套在el-form-item中)

<ys-date-picker v-model="queryFormData.end_time"
                              policy_id="endTime"
                              prop="endTime"
                              width="130"
              ></ys-date-picker>

九、多选框

<ys-muti-combo-box :option="statusOption"
                                 v-model="queryFormData.status"
                                 policy_id="status"
                                 prop="status"
                                 width="220"
              ></ys-muti-combo-box>

十、按钮

<ys-button text="重置" btn-type="primary" @btn-click="resetForm" width="90"></ys-button>

十一、提示框

that.$message.success("删除成功!");
that.$message.warnning("删除成功!");
that.$message.error("删除成功!");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值