Vue基础模板语法

Vue.js 使用了基于 HTML 的模板语法,下面为大家介绍一些基本的模板语法:

插值

1,文本插值:
新建一个Vue 在data里面写的属性,都能通过{{}}来取值。

<div id="uu">
		{{msg}}
</div>
<script type="text/javascript">
		new Vue({
			el: '#uu',
			data() {
				return {
					msg: '666',
				};
			}
		})
	</script>

2,html
在div中加入属性v-html,即可把在data()里的属性以html的标签代码输出。

<div v-html="vueHtml"></div>
<script type="text/javascript">
		new Vue({
			el: '#uu',
			data() {
				return {
					vueHtml: '<span style="color:red">555</span>',
				};
			}
		})
	</script>

3,属性
v-bind 简写::
v-bind:value就是将值填写到value=""
然后value的值方式改变,并不会影响vue实例中变量值。

<input type="text" :value="msg" />
<script type="text/javascript">
		new Vue({
			el: '#uu',
			data() {
				return {
					msg: '666',
				};
			}
		})
	</script>

4,表达式
在vue中各种表达式也是支持的,和C标签差不多,只不过多了一个{}。
{{str.substr(0,6).toUpperCase()}} //全大写
{{ number + 1 }} //int类型增加
{{ ok ? ‘YES’ : ‘NO’ }} //三元运算符

  • 我的Id是js动态生成的
  • //在vue中拼接是外面套个" "然后字符串加 ’ ’ 属性则直接加进去。

    指令

    指的是带有“v-”前缀的特殊属性。

    1,条件指令(if else-if else)
    根据其后表达式的bool值进行判断是否渲染该元素
    他们只能是兄弟元素
    v-else-if上一个兄弟元素必须是v-if
    v-else上一个兄弟元素必须是v-if或者是v-else-if
    就和java中的if else是一模一样的,但这里比较简单
    ,在""里面输入判断语句,符合的就会输出div里的内容。

    <div id="uu">
    		<input type="text" v-model="score" />
    		<div v-if="score>90">A</div>
    		<div v-else-if="score>80">B</div>
    		<div v-else-if="score>70">C</div>
    		<div v-else-if="score>60">D</div>
    		<div v-else>E</div>
    </div>
    <script type="text/javascript">
    		new Vue({
    			el: '#uu',
    			data() {
    				return {
    					score:22,
    				};
    			}
    		});
    </script>
    

    2,V-Show
    与v-if类似,只是会渲染其身后表达式为false的元素,而且会给这样的元素添加css代码:style=“display:none”。

    <div id="uu">
    		<input type="text" v-model="show" />
    		<div v-show="show>10">chuxian</div>
    </div>
    <script type="text/javascript">
    		new Vue({
    			el: '#uu',
    			data() {
    				return {
    					score:22,
    					show:null,
    				};
    			}
    		});
    </script>
    

    3,v-for
    类似JS的遍历,
    遍历数组: v-for=“item in items”, items是数组,item为数组中的数组元素
    遍历对象: v-for="(value,key,index) in stu", value属性值,key属性名,index下标。

    <div v-for="item,index in arr">
    		{{item}},{{index}}
    </div>
    <div v-for="item,index in objarr">
    		{{item.name}},{{index}}
    </div>
    <script type="text/javascript">
    		new Vue({
    			el: '#uu',
    			data() {
    				return {
    					arr:[1,2,3,4],
    					objarr:[{id:1,name:'狗蛋'},{id:2,name:'狗蛋2'}],
    				};
    			}
    		});
    </script>
    

    还有一些基本的,例:v-bind, v-on, v-model。

    动态参数

    从2.6.0开始,可以用方括号括起来的JavaScript表达式作为一个指令的参数。

    <input type="text" v-model="evname" />
    		<!-- 只要是V-on里面的时间都可以更改 -->
    <button v-on:[evname]="xxx">点我</button>
    
    <script type="text/javascript">
    		new Vue({
    
    			el: '#uu',
    			data() {
    				return {
    					evname:'click',
    				};
    			}
    	</script>
    
    

    在输入框中输入任何指令都能生效。

    过滤器

    1,局部过滤器

    <!--第一个是引用对象 中间用 | 隔开 右边则是过滤器的名称 -->
    {{msg|a}}
    
    
    <script type="text/javascript">
    		new Vue({
    
    			el: '#uu',
    			data() {
    				return {
    					msg: 'https://www.baidu.com',
    				};
    			},
    			filters:{
    			// 参数V就是你引用的对象
    				a(v){
    					console.log(v);
    					//可返回值
    					return 'xxx';
    				}
    			}
    		});
    </script>
    
    

    且局部过滤器可以串联,
    用| 隔开,他会先运行a再运行b过滤器。
    {{msg|a|b}}

    2,全局过滤器

    全局过滤器,也就是指,当你这个项目的其他地方也需要这个过滤器的时候,可以把它变成全局,这样整个项目都能使用这个过滤器了。

    	<script type="text/javascript">
    	//第一个是过滤器名称, 第二个则是过滤器作用。v是参数。
    		Vue.filter('c',function(v){
    			return v.substring(4,9);
    		})
    		
    		new Vue({
    			el: '#uu',
    			data() {
    				return {
    					msg: 'https://www.baidu.com',
    				};
    			}
    		});
    	</script>
    

    计算属性及监听属性

    1,计算属性
    计算属性可用于快速计算视图(View)中显示的属性。这些计算将被缓存,并且只在需要时更新。

    数量:<input type="text" v-model="num"  />
    单价:<input type="text" v-model="price"  />
    计算总价:{{total}}
    <script type="text/javascript">
    		new Vue({
    			el: '#uu',
    			data() {
    				return {
    					num:3,
    					price:12,
    				};
    			},
    			computed:{
    				//在计算机属性定义的时候,是可以获取到vue实例中定义任何变量
    				total(){
    					return parseInt(this.num)*parseInt(this.price);
    				}
    			}
    		});
    	</script>
    
    

    2,监听属性
    监听属性 watch,我们可以通过 watch 来响应数据的变化。
    例:简单的单位换算。
    这里要注意的是 v-model里的值和data()还有watch()中的值,都要保持一致,要不然不出效果,

    	KM:<input type="text" v-model="km"  />
    	M:<input type="text" v-model="m"  />
    <script type="text/javascript">
    		new Vue({
    			el: '#uu',
    			data() {
    				return {
    					km:1,
    					m:1000,
    				};
    			},
    			watch:{
    			// v 也就是监听对象
    				km(v){
    					this.m= v*1000;
    				},
    				m(v){
    					this.km=v/1000;
    				}
    			}
    		});
    	</script>
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值