4004—Vue 2.x随笔

一、安装 

    1—cdn方式     

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>

<!-- 生产环境版本,优化了尺寸和速度 -->
<script src="https://cdn.jsdelivr.net/npm/vue@2"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.14"></script>

     2—脚手架下载

npm install -g webpack

npm install -g webpack-cli

npm install -g vue

npm install -g vue-cli

# 新建一个项目
vue init webpack <名称>

# 安装项目依赖
# cd <项目目录>
npm install

     3—配置参数

-- 查看配置
npm config list

二、作用范围        

<body>
		<div id="app">
			<select v-model="checked" name="fruit">
				<option value="">选择一艘战舰</option>
			    <option value="nagato">长门号</option>
		    	<option value="fuso">扶桑号</option>
                <option value="yamato">大和号</option>                
			</select>            
            <br/>
            <h3>{{checked}}</h3>            	
 		</div>
        <div id="output">
		    	  选择的战舰是:{{checked}}
        </div>
</body>
<script type="text/javascript">			
		 new Vue({
			  el: '#app',
			  data: {	checked: 'fuso'  }
		})
</script>

  当在Vue定义的el标志的div外引用值时(data),将无法使用。  

三、语法 

     1—模拟字符串         

beforeRemove: function(file,fileList) {
     console.log(file);
     return this.$confirm(`确定移除${file.name}吗?`);
}

  字符串需要使用【·】tab键上面那个键括起来,而不能使用单/双引号。

      2—v-model

  • 只能用在表单类元素,数据可在页面元素和data域双向流动     
  • v-model:values可简写为v-model,因为v-model就是绑定value  

      3—v-bind

  • v-bind:values可简写为:value
  • 数据从data到页面元素单向流动

      4—el挂载点

//下面2句是等价的
const v=new Vue({
    el: '#root'
});

v.$mount('#root');

     5—object.defineproperty

console.log("container()------------>>建立")
        let person={
                name: '法外狂徒',
                sex: '男'
        }
        console.log(person);
        Object.defineProperty(person,'age',{
            value: 23
        })
        console.log(person);
//object.defineproperty方法新增的属性,不能通过枚举方式进行显示object.keys

效果如下

  

   6—object.keys

   遍历对象的全部key   

let person={
    name: '法外狂徒',
    gender: '男',
    age : 23
}        

console.log(object.keys(person));

   7—对象遍历

let person={
    name: '法外狂徒',
    gender: '男',
    age: 23
}

for(let key in person){
   console.log(person[key]);
}

  效果如下:

   8—类和对象

//语法:函数内声明。未加入构造器语句
class myErr{  undefined
    Forder;
    Fcontent;
}

//使用
var newOne=new myErr();

   9—队列操作,并触发双向绑定

//加入到队列 
this.gridData.push(newOne );

//删除并返回数组的最后一个元素
this.gridData.pop();

//第一个元素从其中删除,并返回第一个元素的值
this.gridData.shift();

//数组的开头添加一个或更多元素,并返回新的队列 
this.gridData.unshift(newOne,newTwo);

   10—基本语法

//data为集合 
data.forEach(function(item, index) {
            //item 就是当日按循环到的对象
            //index是循环的索引,从0开始
})

四、事件

     1—事件参数

//不带参
<el-button @click="showmsg">点我</el-button>
//带参
<el-button @click="showInfo(22)">点我</el-button>

<el-button @click="showex($event,22)">点我</el-button>

<script>
const vm=new Vue({
    el: '#app',
    data: function() {
       return {


        }    
    },
    methods: {
      showInfo: function(number) {
         console.log(number);
      },
      showex: function(event,number){
        //输出事件
        console.log(event);
        //打印主要信息
        console.log(event.target);
      }
        
    }


})

</script>

     2—事件修饰符

//下面2句是等价的
<a href="www.baidu.com" @click="showInfo()" >事件</a>

<a href="www.baidu.com" @click.prevent="showInfo()">事件2</a>

<script>
    methods: {
        showInfo: function(e) {
            e.preventdefault();
        }
    }
</script>
  • prevent     阻止事件默认行为(常用)
  • stop           阻止事件冒泡(常用)
  • once          事件只触发一次
  • capture      使用事件的捕获模式
  • self             只有event.target是当前操作的元素
  • passive        事件默认行为为立即执行,无需等待

     3—事件阶段

     分为捕获阶段和冒泡阶段。

  1. 捕获阶段。从外层向内层递进。
  2. 冒泡阶段。从内层向外层递进。在捕获阶段后执行。

     4—键盘事件

  • enter
  • delete    捕获delete和backspace
  • esc
  • space
  • tab
  • up        捕获方向键
  • down
  • left
  • right
<!--    键盘事件包含:@keyup、@keydown、、 -->
<!--    回车触发  -->
<input type="text" @keyup.enter="showInfo" />

<!--    大小写切换键  -->
<!--    CapsLock键使用capslock或CapsLock都不正确   -->
<input type="text" @keyup.caps-lock="showInfo" />

<!--    支持连缀  -->
<a href="www.baidu.com" @keyup.stop.prevent="showInfo" />

Vue未提供别名的按键,可以使用按键原始的key值进行绑定,但注意要转为kebab-case(短横线命名)。

系统修饰符(用法特殊):ctrl、alt、shift、meta。

  1. 配合keyup使用。
  2. 配合keydown使用,正常触发事件。 

Vue.config.keycodes.自定义键名=键码,可以去定制按键别名

     5—回调父组件事件

     父组件的代码      

<template>

    <moduleName ref="<refName>" @getChildren="handleCallBack($event)"></moduleName>
</template>

<script>
export default{
  data:function(){
    return{

    }
  },
  methods:{
    handleCallBack(data) {
      // process logical codes
      
    }
  }

}
</script>

      子组件的代码

<template>
    <el-dialog
         :before-close="handleCallBack">        

</template>

<script>
export default{
  data:function(){
    return{
    
    }
  },
  methods:{
    handleCallBack() {    //返回数据到主调页面
      this.$emit('getChildren',this.gridData);
      this.myVisible=false;
    }

  }
}  
</script>

五、计算属性

     1—简写

const VM=new Vue({
    el:"#myapp",
    data: {
      firstName: '张',
      lastName: '三'            
    },
    computed: {
        //完整写法
        fullName: {
           get(){
             return this.firstName+this.lastName

           },
           set(value){
              const vals=value.split('-');  
              this.firstName=vals[0];
              this.lastName=vals[1]    
            }
        }
        //简写
        fullName(){
           //不包含set功能
           return this.fistName+this.LastName; 
        }    

    }

})

六、绑定样式

     1—绑定class

      语法格式: :class="xxx"  xxx可以为字符串、对象、数组

     2—绑定style

     格式1: :style="{fontsize='xx'}"    其中xx为动态值

     格式2:  :style="[a,b]"  a和b为样式对象。

/*   样式对象 例子   */
aObj {
  fontSize : '24px',
  color: 'red'
}

七、页面元素

       1—form       

<template>
    <el-form ref="refForm" :model="formIn">
       <el-form-item prop="name" >
           <el-input type="text" v-model="formIn.name" />
       </el-form-item> 
    </el-form>
</template>


<script>
export default{
  data:function(){
    return{

    }
  },
  methods:{
    handleReset(){  //清空form表单数据
      this.$refs.refForm.resetFields()
      //另一种方法
      this.$options.data() // 整个data全部重置(这是vue实例初始化时的data值,只读)
      this.form = this.$options.data().form // 重置data中的 某个form表单
    }     

  }

}
</script>

十、疑问杂症

     1—form input元素无法输入

 <el-input v-model="drawingData.FBlueprintNo"  />

 经查,为data部分出错,原代码如下:

drawingData:{}

//修正后代码如下:
drawingData:{FBlueprintNo:'' }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值