VUE JS基础语法及入门

官网下载vue文件,在HBuild X中引入vue js

1.vue入门

        语法规则:vue中必须定义根目录标签

        编辑vue js

<script>
			// var 的弊端:没有作用域的概念,如果变量名称重复会引发问题
			// let  有作用域的概念
			// const  常量  全局唯一,不可更改
			const app = new Vue({
				// 标识vue对象的作用范围
				el: "#app",
				// 定义数据对象
				data: {
					hello: "HelloVue"
				}
			})
</script>

        利用插值表达式,获取数据(div标签要放在script标签之前,vue要引用标签所以标签必须先加载出来引用时才能生效)

<div id="app">
			
		{{hello}}
</div>

        最后效果

<body>
		<div id="app">
			{{hello}}
		</div>
		<script src="../js/vue.js"></script>
		<script>
			const app = new Vue({
				el: "#app",
				data: {
					hello: "HelloVue"
				}
			})
		</script>
</body>

(1)v-click:当程序编译结束时,v-vlock的隐藏效果将不起作用,当程序没有编译结束时,v-clock的隐藏效果有效

    <head>
        <style type="text/css">
			/* 为属性定义样式 */
			[v-clock]{
				/* 定义样式不显示 */
				display: none;
			}
		</style>
    </head>
    <body>
        <div id="app" v-cloak>
			{{hello}}
		</div>
		<script src="../js/vue.js"></script>
		<script>
			const app = new Vue({
				el: "#app",
				data: {
					hello: "HelloVue"
				}
			})
		</script>
    </body>

2.vue数据展现

        先在页面最后设置好script标签

    <script>
		const app = new Vue({
			el: "#app",
			data: {
				hello: "您好Vue",
				html: "<h1>好好学习,天天向上</h1>",
				one: "java学习",
				name: "admain"
			}
		})
    </script>

        (1)Mustache:插值表达式

<h3>{{hello}}</h3>

        (2)v-text:数据展现,当数据没有解析成功时,页面没有任何数据,是v-clock的升级版

<h3 v-text="hello"></h3>

        (3)v-html:将数据按照html形式解析,有时候页面中的部分数据来自于其他服务器,远程服务器返回的是html代码片段,如果需要,会将代码片段渲染为页面形式

<div v-html="html"></div>

        (4)v-pre:跳过这个元素和它的子元素的编译过程,可以用来显示Mustache标签。跳过大量没有指令的节点,会加快编译。当需要展示原始的Mustache标签不需要程序编译时可以使用。

<div v-pre>{{hello}}</div>

        (5)v-once:数据只允许渲染一次

<div v-text="one" v-once></div>

        (6)v-model:双向数据绑定,data中的数据发生变化时页面数据随时更新

    <div style="border: aliceblue;">
		<h3>双向数据绑定</h3>
		用户名:<input type="text" name="name" v-model="name" />
    </div>

3.vue事件绑定

        (1)事件

    <body>
		<div id="app">
			<h1 v-text="number"></h1>
			<button v-on:click="number++">自增</button>
			<!-- 简化操作 -->
			<button @click="addNum">加1</button>
			<button @click="addNum2">自增2</button>
			<button @click="subNum">自减2</button>
		</div>
		<script src="../js/vue.js"></script>
		<script type="text/javascript">
			const app = new Vue({
				el: "#app",
				data: {
					number: 1
				},
				methods: {
					addNum:function(){
						this.number++
					},
					// addNum方法的简化操作
					addNum2(){
						this.number += 2
					},
					subNum(){
						this.number -= 2
					}
				}
			})
		</script>
		
	</body>

        页面展示结果,可以对数字进行加减运算

        (2)事件冒泡:如果事件之间有嵌套关系,执行完成内部事件之后执行外部事件,这种现象称为事件冒泡,阻止事件冒泡:后面.stop

    <div id="app" @click="addNum2">
		<h3>{{number}}</h3>
		<button @click="addNum">增1</button>
	</div>
    <script src="../js/vue.js"></script>
	<script type="text/javascript">
		const app = new Vue({
			el: "#app",
			data: {
				number: 1
			},
			methods: {
				addNum:function(){
					this.number++
				},
				addNum2(){
					this.number += 2
				},
			}
		})
	</script>

        (3)@click.prevent:阻止默认行为,如果需要阻止标签的默认行为 则添加 @click.prevet

<div id="app">
	<a href="" @click.prevent="baidu" >百度</a>
</div>
  //超链接默认会跳转到指定页面,用@click.prevent阻止它的默认行为
<script type="text/javascript">
	const app = new Vue({
		el: "#app",
		data: {
		},
		methods: {
			baidu(){
				console.log(`跳转百度`);
			}
		}
	})
</script>

        (4)特殊按键字符说明(F12键可以查看结果)

<div id="app">
	<h3>常用特殊按键字符说明</h3>
	回车键触发:<input type="text" name="username" type="text" @keyup.enter="handler"/> <br>
	删除键触发:<input type="text" name="age" type="text" @keyup.delete="handler" /> <br>
	space键触发:<input type="text" name="sex" type="text" @keyup.space="handler" /> <br>
</div>
<script src="../js/vue.js"></script>
<script type="text/javascript">
	const app = new Vue({
		el: "#app",
		data: {
        },
		methods: {
        handler(){
			console.log("函数被点击");
		}
    })
</script>

        (5)计算器:要求,输入完B之后,回车键触发计算 加法操作

    <body>
		<div id="app">
			数据A:<input type="text" v-model="num1"/>
			数据B:<input type="text" v-model="num2" @keyup.enter="add"/>
			总 和:<span v-text="count"></span>
		</div>
		<script src="../js/vue.js"></script>
		<script type="text/javascript">
			const app = new Vue({
				el: "#app",
				data: {
					num1: '',
					num2: '',
					count: ''
				},
				methods: {
					add(){
						this.count = parseInt(this.num1) + parseInt(this.num2)
					}
				}
			})
		</script>
	</body>

4.vue属性绑定

        (1)属性绑定

<div id="app">
    <a v-bind:href="url">百度-vue1</a>
    <!-- 简化 -->
	<a :href="url">百度-vue2</a>
</div>
<script src="../js/vue.js"></script>
<script type="text/javascript">
	const app = new Vue({
		el: "#app",
		data: {
			url: "http://www.baidu.com"
		},
		methods: {	
		}
	})
</script>

        (2)样式绑定(点击切换可进行央视的切换)

<div id="app">
    <h3>样式绑定</h3>
	<!-- 需求:控制red是否展现 -->
	<div class="red">AAAAAAAAAAA</div>
	<div :class="{red:flage}">BBBBBBBBBBBBB</div>
	<button @click="flage = !flage">切换</button>
</div>
<script src="../js/vue.js"></script>
<script type="text/javascript">
	const app = new Vue({
		el: "#app",
		data: {
            flage: true
	    },
        methods: {		
		}
        })
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值