Vue笔记

这篇具有很好参考价值的文章主要介绍了Vue笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一章:Vue环境搭建

1.搭建Vue环境

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

<!--    1.引入Vue.js-->
    <script src="1.vue.js"></script>
</head>
<body>


<script type="text/javascript">
    Vue.config.productionTip=false//阻止Vue在启动时 生成生产提示
</script>



</body>
</html>

2.helloWorld(插值语法)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--  1.引入Vue.js-->
  <script src="1.vue.js"></script>
</head>
<body>



<!--2.准备好一个容器-->
<div id="root">

<!--  使用插值语法:插入一个值  两组花括号-->
  <h1>hello  {{name}} </h1>
</div>


<script>

  Vue.config.productionTip=false;//设置关闭生产者提示


//  全局多了Vue这个构造函数  因此可以 使用new去用

  const i=new Vue({
    el:"#root",  //对象第一个属性:匹配容器和实例  el用于指定当前vue实例为那个容器服务  值通常为css选择器字符串


  // el:document.getElementById("root")//也可以这样子
    data:{
    //  在来个对象  对象里面可以存任意数据类型的对象

      /*    因此data中用来存储数据 数据提供给data使用
      *           值  我们先暂时写成对象的形式 {}
      * 
      * */
      
      name:'计算机科学与技术'

    }

  })//创建Vue实例  参数传递一个  叫做配置对象
  
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


<!--    Vue2.0练习-->

<!--    1.先引入Vue文件-->
    <script src="../1.Vue教程/1.vue.js">
    </script>

</head>
<body>

<!--2.准备一个容器   注意空格数据需要使用插值语法-->
<h1 id="root">你好  {{data}} </h1>


<!--3.准备script-->
<script>

<!--    生成一个vue实例 构造函数里面需要传递参数  只有一个参数 叫做配置对象-->
    let vue = new Vue(
        {
            el:"#root",//注意在js中 对象值之间使用逗号连接  注意这里只能是el  按照教程来

        //    接着书写数据 因为数据是要放在标签中显示的 因此最好使用对象
            data:{
                name: "计算机科学与技术"

            }

        }

    );


</script>


</body>
</html>
1.创建一个Vue实例 传递一个配置对象
2.root容器中的代码依然符合html代码规范 只不过混入一些特殊的Vue
3.root容器代码称为Vue模板
4.Vue的实例和容器是一一对应的
5.在开发中 只有一个Vue实例 并且配合着组件一起使用
6.{{XXX}} XXX是js中语句  对象.属性  直接写对象

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script src="../1.Vue教程/1.vue.js"></script>

</head>
<body>


<h1 class="root">你好 !{{name}}  {{address}} {{day}}</h1>


<script>

  new Vue({

    el:".root",

    data: {
      name: "计算机科学与技术",
      address: "云南 昆明",
      day: "星期一!"


    }
  })
  
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
  <script src="../1.Vue教程/1.vue.js"></script>

</head>
<body>


<h1 class="root">你好 !{{name.name1}}  {{address}} {{day.age}}</h1>


<script>

  new Vue({

    el:".root",

    data: {
      name: {
        name1:"无邪"

      },
      address: "云南 昆明",
      day: {
        age:18
  },


    }
  })

</script>
</body>
</html>

3.模板语法

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--1.引入Vue文件-->

  <script src="../1.Vue教程/1.vue.js"></script>

</head>
<body>


<!--准备一个容器-->
<div id="root">

  <h1>插值语法</h1>
  <h2>你好 {{data}}  {{data}} </h2>

  <hr>


  <h1>指令语法</h1>
<!--  把跳转地址写死了  因此使用指令语法!-->
<!--  <a href="www.baidu.com">进入</a>-->

<!--  v-bind:  可以动态指定属性-->
  <a v-bind:href="url"  v-bind:x="dta()">进入</a>

<!--v-bind:X    为X动态绑定  Vue实例中的方法或属性对象  使用v-bind会把标签属性的值变为js语句  当做js中的语句来执行-->

</div>

<script>

<!--  创建一个Vue实例-->
  new Vue({
    el:"#root",

    data:{

      name:"无邪",
      url:"www.baidu.com",

      dta(){
        console.log("你好!")

      }

    }


  })

/*      Vue模板语法有两大类:
              --1.插值语法:
                    功能:用于解析 标签体内容
                        写法 {{xxx}}}  xxx是js的表达式 且可以直接读取到data中的所有属性
*             --2.指令语法:
*                     功能:用于解析标签 包括 标签属性 标签体内容 绑定事件...
                        v-bind:href="xxx" 或简写为 :href="xxx" xxx同样要写为js表达式
*                         且可以直接读取到data中的所有属性
                  备注:Vue中有很多的指令 且形式都是:  v-???
*
*
*
*
* */

</script>


</body>
</html>

4.数据绑定

<!DOCTYPE html>
<html lang="en" xmlns:v-bind="http://www.w3.org/1999/xhtml" xmlns:v-model="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>数据</title>

  <script src="1.vue.js"></script>

</head>
<body>



<div id="root">


<!--  使用v-bin  就是把vue实例中的data对象 中的name语句赋值给value
              v-bind中最大的特点的就是单向数据绑定    从输入框中修改数据在控制台里面不会出现  从控制台输入则不会 这就是单向数据绑定

       使用v-model  就是把vue实例中的data对象 中的name语句赋值给value
              v-model中最大的特点的就是双向数据绑定    从输入框中修改数据在控制台里面会出现  从控制台输入也会修改 这就是双向数据绑定
                    注意:v-model 只能适用于表单类的标签   v-model就是针对 value属性操作
-->
  单向数据绑定 <input type="text"  v-bind:value="name"> <br>
<!--  双向数据绑定 <input type="text" v-model:value="name"> <br>-->


<!--    采用简写属性-->
    双向数据绑定 <input type="text" v-model="name"> <br>
</div>

<script>


<!--  创建一个VUe实例-->
      new Vue({
        el:"#root",

        data:{
          name:"计算机科学与技术学院"
        }



      })
/*
*           1.单向数据绑定-   v-bind  数据只能从data流向页面
*           2.双向绑定     v-model  数据不仅能从data流向页面  还可以从页面流向data
*                   注意:
*                           1.双向绑定一般应用在表单类因素上  input select上
*                           2.v-model:value 可以简写为 v-model  因为v-model默认收集的就是value
*
*
*
*
*
*
*
*
*
*
* */

</script>

</body>
</html>

5.el和data的两种写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>


  <script src="1.vue.js"></script>

</head>
<body>
<div id="root">
  <h1>{{name}}</h1>
</div>


<script>

/*
  let vue = new Vue({

    // el:"#root",  第一种写法
    data:{
      name:"计算机"
    }

  })
*/

  //第二种写法  把vue实例挂载到id属性为root的容器上
  // v.$mount("#root")

  //来个定时器  1秒后执行回调函数里面的代码
 /* setTimeout(()=>{

    v.$mount("#root")
  },1000)*/



/*  console.log(vue);*/



new Vue({

  el:"#root",
   /* data的第一种写法:  data:{
      name:"计算机"
    }*/

//    data的第二种写法:函数式

  /*  data:function () {

        return{
            name:'计算机'
        }
    }
*/

    data(){
        return{
            name:"计算机"
        }

    }

})


/*
*           1.el有两种写法
*                       --1.new Vue的时候 配置el属性
*                       --2.先创建Vue实例 随后在通过vm.$mount('#root')指定el属性
*            2.data的两种写法:
*                       --1.对象式
*                       --2.函数式
*
*               3.注意:由Vue管理的函数  一定不要书写箭头函数 一旦写了箭头函数 this就不再是Vue实例了 而是Window
*
*
*
*
*
*
*
*
*
* */

</script>




</body>
</html>

6.MVVM实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>MVVM实例</title>


<!--  1.引入vue文件-->
  <script src="1.vue.js"></script>
</head>
<body>
<div id="root">
      <h1>学校名称:{{name}}</h1>
      <h1>地址:{{address}} {{$options}}</h1>
</div>


<script>

  /*    MVVM模型:
  *           1.M(Model) data中的诗句
  *           2.V:视图(View) 模板代码
  *            3.VM  视图模型(ViewModel)  Vue实例
  * 
  *       1.data中的诗句最终也出现在了VM身上
  *       2.vm身上的所有的属性  及vue原型上所有的属性 在vue模板中都可以直接使用
  * 
  * 
  * */
  
  const vm=new Vue({
    el:"#root",

    data:{

      name:"大学",
      address:"云南",
      a:12

    }
  })

  console.log(vm)
</script>

</body>
</html>

7.数据代理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据代理</title>
</head>
<body>


<script>
  let person={
    name:"吴邪",
    sex:'男',
  }

  Object.defineProperty(person,'age',{
   /* value:18,
    enumerable:true,//可列举  控制属性是否可以枚举  默认值为FALSE
    writable:true,//控制属性是否能被修改  默认值为false
    configurable:true,//控制属性是否能够删除*/


    get:function () {
    //  当有人读取person中的age属性时  get函数就会被调用 且返回值就是age的值

      return '计算机科学'
    },
    set(value){
      
    //  当有人修改person的age属性时  set函数就会被调用 且会受到=修改掉的具体值
        
      
    }


  })//第一个参数是要添加的对象  第二个是要添加对象的属性名 第三个是配置项
  console.log(person)

</script>

</body>
</html>
数据代理:通过一个对象对另一个对象中属性的操作 读/写  -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>数据代理</title>
</head>
<body>

<script>



  let obj1={x:100}

  let obj2={y:200}

//  通过修改obj2;来修改obj1

  Object.defineProperty(obj2,'x',{
    get(){
      return obj1.x
    },

    set(value){
obj1.x=value
      console.log()
    }

  })
  
//  通过obj2来改变obj1的值



</script>



</body>
</html>

8.Vue中的数据代理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

  <script src="1.vue.js"></script>

</head>
<body>

<div id="root">

  <h2>学校名称{{name}}</h2>
  <h2>地址{{address}}</h2>

</div>



<script>


  let vue = new Vue({
    el:"#root",
    data:{
      name:"计算机",
      address:'昆明'

    }


  });
  console.log(vue._data.name)

/*
*     1.Vue中的数据代理:
                     通过vm对象来代理data对象中属性的操作(读/写)
            2.Vue中数据代理的好处:
                     更加方便的操作data中的数据
            3.基本原理:
                     通过Object.defineProperty()把data对象中所有属性添加到vm上。
                     为每一个添加到vm上的属性,都指定一个getter/setter。
                     在getter/setter内部去操作(读/写)data中对应的属性。
*
*
*
*
* */

</script>


</body>
</html>

第二章:Vue事件

1.Vue中的事件处理(点击双击事件)

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script src="1.vue.js">
    </script>

</head>
<body>
<div class="root">
    <h1>{{name}}</h1>

<!--    当我点击这个按钮的时候 我就去寻找函数名为showInfo的函数事件去使用-->
    <button v-on:click="showInfo">提示</button>

<!--    简写 v-on 与@等价  -->
    <button @click="showInfo2">确定</button>
</div>

<!--事件的基本使用:
                     1.使用v-on:xxx 或 @xxx 绑定事件,其中xxx是事件名;
                     2.事件的回调需要配置在methods对象中,最终会在vm上;
                     3.methods中配置的函数,不要用箭头函数!否则this就不是vm了;
                     4.methods中配置的函数,都是被Vue所管理的函数,this的指向是vm 或 组件实例对象;
                     5.@click="demo" 和 @click="demo($event)" 效果一致,但后者可以传参;-->

<script>

    new Vue(
        {

            el:".root",

            data:{
                name:"计算机"

                /*      在Vue中给标签绑定事件需要使用一个指令:
                *               v-on:click
                *
                *
                *
                *
                * */

            },

        //    使用配置项目 把回调函数放在vue实例中
            methods:{
                 showInfo1(event){
                 //    对象里面配方法 因此把function关键字去掉
                     console.log(event)
                     // document.write("你好 同学!")
                 //    event这个参数就是鼠标
                     alert("你好!")

                 },
                showInfo2(){
                     alert("你好 计算机科学与技术")
                }

            }


        }


    )

</script>



</body>
</html>

2.事件修饰符

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>事件修饰符</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
		<style>
			*{
				margin-top: 20px;
			}
			.demo1{
				height: 50px;
				background-color: skyblue;
			}
			.box1{
				padding: 5px;
				background-color: skyblue;
			}
			.box2{
				padding: 5px;
				background-color: orange;
			}
			.list{
				width: 200px;
				height: 200px;
				background-color: peru;
				overflow: auto;
			}
			li{
				height: 100px;
			}
		</style>
	</head>
	<body>
		<!-- 
				Vue中的事件修饰符:
						1.prevent:阻止默认事件(常用);
						2.stop:阻止事件冒泡(常用);
						3.once:事件只触发一次(常用);
						4.capture:使用事件的捕获模式;
						5.self:只有event.target是当前操作的元素时才触发事件;
						6.passive:事件的默认行为立即执行,无需等待事件回调执行完毕;
		-->
		<!-- 准备好一个容器-->
		<div id="root">
			<h2>欢迎来到{{name}}学习</h2>
			<!-- 阻止默认事件(常用) -->
			<a href="http://www.atguigu.com" @click.prevent="showInfo">点我提示信息</a>

			<!-- 阻止事件冒泡(常用) -->
			<div class="demo1" @click="showInfo">
				<button @click.stop="showInfo">点我提示信息</button>
				<!-- 修饰符可以连续写 -->
				<!-- <a href="http://www.atguigu.com" @click.prevent.stop="showInfo">点我提示信息</a> -->
			</div>

			<!-- 事件只触发一次(常用) -->
			<button @click.once="showInfo">点我提示信息</button>

			<!-- 使用事件的捕获模式 -->
			<div class="box1" @click.capture="showMsg(1)">
				div1
				<div class="box2" @click="showMsg(2)">
					div2
				</div>
			</div>

			<!-- 只有event.target是当前操作的元素时才触发事件; -->
			<div class="demo1" @click.self="showInfo">
				<button @click="showInfo">点我提示信息</button>
			</div>

			<!-- 事件的默认行为立即执行,无需等待事件回调执行完毕; -->
			<ul @wheel.passive="demo" class="list">
				<li>1</li>
				<li>2</li>
				<li>3</li>
				<li>4</li>
			</ul>

		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		new Vue({
			el:'#root',
			data:{
				name:'尚硅谷'
			},
			methods:{
				showInfo(e){
					alert('同学你好!')
					// console.log(e.target)
				},
				showMsg(msg){
					console.log(msg)
				},
				demo(){
					for (let i = 0; i < 100000; i++) {
						console.log('#')
					}
					console.log('累坏了')
				}
			}
		})
	</script>
</html>

3.键盘事件(keydown和keyup)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>键盘事件</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 
				1.Vue中常用的按键别名:
							回车 => enter
							删除 => delete (捕获“删除”和“退格”键)
							退出 => esc
							空格 => space
							换行 => tab (特殊,必须配合keydown去使用)
							上 => up
							下 => down
							左 => left
							右 => right

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

				3.系统修饰键(用法特殊):ctrl、alt、shift、meta
							(1).配合keyup使用:按下修饰键的同时,再按下其他键,随后释放其他键,事件才被触发。
							(2).配合keydown使用:正常触发事件。

				4.也可以使用keyCode去指定具体的按键(不推荐)

				5.Vue.config.keyCodes.自定义键名 = 键码,可以去定制按键别名
		-->
		<!-- 准备好一个容器-->
		<div id="root">
			<h2>欢迎来到{{name}}学习</h2>
			<input type="text" placeholder="按下回车提示输入" @keydown.huiche="showInfo">
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		Vue.config.keyCodes.huiche = 13 //定义了一个别名按键

		new Vue({
			el:'#root',
			data:{
				name:'尚硅谷'
			},
			methods: {
				showInfo(e){
					// console.log(e.key,e.keyCode)
					console.log(e.target.value)
				}
			},
		})
	</script>
</html>

第三章:计算属性和监视属性

1.计算属性(computed)

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>姓名案例_插值语法实现</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="root">
			姓:<input type="text" v-model="firstName"> <br/><br/>
			名:<input type="text" v-model="lastName"> <br/><br/>
			全名:<span>{{firstName}}-{{lastName}}</span>
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		new Vue({
			el:'#root',
			data:{
				firstName:'张',
				lastName:'三'
			}
		})
	</script>
</html>
<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>姓名案例_methods实现</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="root">
			姓:<input type="text" v-model="firstName"> <br/><br/>
			名:<input type="text" v-model="lastName"> <br/><br/>
			全名:<span>{{fullName()}}</span>
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		new Vue({
			el:'#root',
			data:{
				firstName:'张',
				lastName:'三'
			},
			methods: {
				fullName(){
					console.log('@---fullName')
					return this.firstName + '-' + this.lastName
				}
			},
		})
	</script>
</html>
属性就是data里面的数据
方法(函数)就是methods里面的方法

el用来绑定标签里面的类名或id  data用来存放 标签里面要显示的内容 插值语法  methods用来存放对应的事件触发代码内容 
computed用来存放计算属性

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>姓名案例_计算属性实现</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 
			计算属性:
					1.定义:要用的属性不存在,要通过已有属性计算得来。
					2.原理:底层借助了Objcet.defineproperty方法提供的getter和setter。
					3.get函数什么时候执行?
								(1).初次读取时会执行一次。
								(2).当依赖的数据发生改变时会被再次调用。
					4.优势:与methods实现相比,内部有缓存机制(复用),效率更高,调试方便。
					5.备注:
							1.计算属性最终会出现在vm上,直接读取使用即可。
							2.如果计算属性要被修改,那必须写set函数去响应修改,且set中要引起计算时依赖的数据发生改变。
		 -->
		<!-- 准备好一个容器-->
		<div id="root">
			姓:<input type="text" v-model="firstName"> <br/><br/>
			名:<input type="text" v-model="lastName"> <br/><br/>
			测试:<input type="text" v-model="x"> <br/><br/>
			全名:<span>{{fullName}}</span> <br/><br/>
			<!-- 全名:<span>{{fullName}}</span> <br/><br/>
			全名:<span>{{fullName}}</span> <br/><br/>
			全名:<span>{{fullName}}</span> -->
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		const vm = new Vue({
			el:'#root',
			data:{
				firstName:'张',
				lastName:'三',
				x:'你好'
			},
			methods: {
				demo(){
					
				}
			},
			computed:{
				fullName:{
					//get有什么作用?当有人读取fullName时,get就会被调用,且返回值就作为fullName的值
					//get什么时候调用?1.初次读取fullName时。2.所依赖的数据发生变化时。
					get(){
						console.log('get被调用了')
						// console.log(this) //此处的this是vm
						return this.firstName + '-' + this.lastName
					},
					//set什么时候调用? 当fullName被修改时。
					set(value){
						console.log('set',value)
						const arr = value.split('-')
						this.firstName = arr[0]
						this.lastName = arr[1]
					}
				}
			}
		})
	</script>
</html>

2.计算属性的简写

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>姓名案例_计算属性实现</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="root">
			姓:<input type="text" v-model="firstName"> <br/><br/>
			名:<input type="text" v-model="lastName"> <br/><br/>
			全名:<span>{{fullName}}</span> <br/><br/>
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

		const vm = new Vue({
			el:'#root',
			data:{
				firstName:'张',
				lastName:'三',
			},
			computed:{
				//完整写法
				/* fullName:{
					get(){
						console.log('get被调用了')
						return this.firstName + '-' + this.lastName
					},
					set(value){
						console.log('set',value)
						const arr = value.split('-')
						this.firstName = arr[0]
						this.lastName = arr[1]
					}
				} */
				//简写
				fullName(){
					console.log('get被调用了')
					return this.firstName + '-' + this.lastName
				}
			}
		})
	</script>
</html>

3.监视属性

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>天气案例</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="root">
			<h2>今天天气很{{info}}</h2>
			<!-- 绑定事件的时候:@xxx="yyy" yyy可以写一些简单的语句 -->
			<!-- <button @click="isHot = !isHot">切换天气</button> -->
			<button @click="changeWeather">切换天气</button>
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		
		const vm = new Vue({
			el:'#root',
			data:{
				isHot:true,
			},
			computed:{
				info(){
					return this.isHot ? '炎热' : '凉爽'
				}
			},
			methods: {
				changeWeather(){
					this.isHot = !this.isHot
				}
			},
		})
	</script>
</html>
	get(){
					console.log('get被调用了')
					return this.firstName + '-' + this.lastName
				},
				set(value){
					console.log('set',value)
					const arr = value.split('-')
					this.firstName = arr[0]
					this.lastName = arr[1]
				}
			} */
			//简写
			fullName(){
				console.log('get被调用了')
				return this.firstName + '-' + this.lastName
			}
		}
	})
</script>
```

3.监视属性

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>天气案例</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="root">
			<h2>今天天气很{{info}}</h2>
			<!-- 绑定事件的时候:@xxx="yyy" yyy可以写一些简单的语句 -->
			<!-- <button @click="isHot = !isHot">切换天气</button> -->
			<button @click="changeWeather">切换天气</button>
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		
		const vm = new Vue({
			el:'#root',
			data:{
				isHot:true,
			},
			computed:{
				info(){
					return this.isHot ? '炎热' : '凉爽'
				}
			},
			methods: {
				changeWeather(){
					this.isHot = !this.isHot
				}
			},
		})
	</script>
</html>

文章来源地址https://www.toymoban.com/news/detail-689166.html

到了这里,关于Vue笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue.js前端框架应用案例

    Vue.js 是一种流行的前端框架,它可以帮助开发者构建单页应用(SPA)和复杂的用户界面。以下是几个 Vue.js 的案例,涵盖了不同领域的应用: Vue.js 官方文档 :Vue.js 的官方文档本身就是一个使用 Vue.js 构建的项目。它展示了 Vue.js 的各种功能和最佳实践,包括组件、指令、混

    2024年02月21日
    浏览(18)
  • Vue.js 现代前端开发的利器

    作者:阿发家的阿花 在当今的前端开发领域,Vue.js已经成为最受欢迎的JavaScript框架之一。它的简洁性、灵活性和强大的功能使其成为许多开发者首选的工具。本文将介绍Vue.js的核心概念、主要特点以及为什么它在现代前端开发中如此重要。我们还将探讨Vue.js在构建交互式和

    2024年02月10日
    浏览(18)
  • 前端埋点需求(vue.js)

    提示:基于运营活动的需求,需要对用户行为进行埋点监控,因此以下文章是代码埋点的实现。 前端埋点有两种:全局埋点、代码埋点。 全局埋点 :收集的用户所有行为,但是收集的数据驳杂,要进行处理。 代码埋点 :收集的用户所有行为更加精准,能够进行更细节的处

    2023年04月13日
    浏览(13)
  • 《Vue.js前端开发实战》课后习题答案

    本答案仅供参考,禁止用于抄袭等不法用途 一、 填空题 用户界面 ViewModel refs vue-devtools 组件 二、 判断题 对 对 对 对 对 三、 选择题 D C D A A 四、 简答题 请简述什么是Vue。 Vue(读音/Vjuː/,类似于View)是一套用于构建用户界面的渐进式框架,与其他大型框架相比,Vue被设计

    2024年02月03日
    浏览(21)
  • vue系列--通过js生成前端水印的方法

    此方法开箱即用,在vue项目中import即可。 例如:

    2024年02月22日
    浏览(24)
  • 常见的web前端开发框架:Vue.js

            常见的Web前端开发框架包括Bootstrap、Vue.js、React.js、Angular.js等。每个框架都有其独特的特点和优势,开发者可以根据项目的需求和个人的喜好来选择合适的框架。同时,随着技术的不断发展,新的框架和工具也会不断涌现,为Web前端开发带来更多的选择和可能性。

    2024年02月20日
    浏览(19)
  • ChatGPT给出的前端面试考点(Vue.js)

    答案 1. Vue.js是什么?它的主要特点是什么? Vue.js是一个渐进式JavaScript框架,用于构建用户界面。它的主要特点包括: 数据绑定:Vue.js使用双向数据绑定,即视图会自动更新以匹配数据的变化,反之亦然。 组件化:通过组件化的方法可以构建可重用的视图组件。 轻量级:

    2024年01月20日
    浏览(21)
  • 【前端vue升级】vue2+js+elementUI升级为vue3+ts+elementUI plus

    gogo code 是一个基于 AST (源代码的抽象语法结构树状表现形式)的 JavaScript/Typescript/HTML 代码转换工具,可以用它来构建一个代码转换程序来帮助自动化完成如框架升级、代码重构、多平台转换等工作。 当前 GoGoCode 支持解析和操作如下类型的代码: ○JavaScript(JSX) ○Typescript

    2024年02月12日
    浏览(16)
  • 【前端Vue】Vue学习笔记之基础内容

    Vue实例:通过new Vue()创建的Vue实例,它关联一个DOM元素并提供数据和组件的上下文。 文档对象模型 (DOM) 是 HTML 和 XML 文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。DOM 将文档解析为一

    2023年04月23日
    浏览(20)
  • 前端HTML、CSS、JS、VUE3 汇总

    学习https://developer.mozilla.org/zh-CN/docs/Learn/CSS 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 使用VS Code运行前端代码 在VS Code上安装前端插件 正在更新中~ ✨ 提示:这里可以添加本文要记录的大概内容: 学习路线 知识定位 HTML基础 标签、表格、表单、

    2024年02月13日
    浏览(23)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包