IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue模板语法 -> 正文阅读

[JavaScript知识库]vue模板语法

1.vue基础语法

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
			 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="app">
			<!-- 插值 -->
			<h3>{{msg}}</h3>
		    <!--使用v-html指令用于输出html代码 -->         
			<span v-html="ss"></span>
			 <!--HTML属性中的值应使用v-bind指令 -->
			<!-- <input  :value="val" /> -->
			<input  v-bind:value="val" />
			<!-- Vue提供了完全的JavaScript表达式支持 -->
			{{str.toUpperCase()}}
			{{number+3}}
			<span :id="'book'+id">动态ID</span>
		</div>
		
		<script type="text/javascript">
			new Vue({
				el:'#app',
				data() {
					return {
						msg:'xxxxxxxxxx',
						ss:'<h2 style="color:red;">java入门到精通大全</h2>',
						val:23,
						str:'java入门到精通大全',
						number:12,
						id:1,
						
					}
				}
				
			})
		</script>
	</body>
</html>

2.指令以及动态参数

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

  1. v-else-if上一个兄弟元素必须是v-if
  2. v-else上一个兄弟元素必须是v-if或者是v-else-if
  3. v-show:与v-if类似,不满足条件时,将元素隐藏,而且会给这样的元素添加css代码:style="display:none"
  4. v-if :不满足条件时,将元素隐藏,代码段消失
  5. v-for:类似JS的遍历(下拉框实现 ,复选框实现)
  6. 使用动态参数为一个动态的事件名绑定函数(表达式:v-on:[evname]? evname:具体事件名称?)
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="cp">
			<!--   (v-if|v-else|v-else-if)使用 -->
			<input type="text" v-model="score" />
			<div v-if="score>80">
				真不错
			</div>
			<div v-else-if="score>60">
				还可以
			</div>
			<div v-else="score<60">
				还需努力
			</div>
			<!-- v-show 使用  与v-if 类似-->
			<div v-show="score>80">
				奖励大嘴巴子一个
			</div>
			<!-- 	v-for使用创建下拉框 -->
			<select v-model="hobbySelect">
				<option v-for="h in hobby" :value="h.id">{{h.name}}</option>
			</select>
			<input type="text"  v-model="hobbySelect" />
			<!-- v-for checkbox 使用 -->
			<div  v-for="h in hobby">
				<input type="checkbox" :value="h.id" />{{h.name}}
			</div>
			<!-- 动态参数 -->
			<button type="button" v-on:[evname]="href">确认</button>
			
		</div>
		<script type="text/javascript">
			new Vue({
				el: '#cp',
				data() {
					return {
						score: 70,
						hobby: [{
								id: "1",
								name: "洗脚"
							},
							{
								id: "2",
								name: "按摩"
							},
							{
								id: "3",
								name: "睡觉"
							}
						],
						hobbySelect:2,
						evname:'click',	
					}
				},
				methods:{
					href(){
						alert('xxxxx')
					}
				}
			})
		</script>
	</body>
</html>

3.过滤器

1.全局过滤器
? ?Vue.filter('filterName', function (value) {
? ? ?// value 表示要过滤的内容
? ?});

2.局部过滤器
? ?new Vue({
? ? ?filters:{'filterName':function(value){}}
? ?});

可以多个过滤器同步使用

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="filter">
			<p>{{msg|all}}</p>
			<p>{{msg|single}}</p>
			<p>{{msg|all|single}}</p>
			<p>{{msg|parem(1,3)}}</p>
		</div>
		
		<script type="text/javascript">
			/* 全局过滤器 */
			Vue.filter('all',function(value){
				return value.substring(0,2)
			})
			new Vue({
				el:'#filter',
				data() {
					return {
						msg:'JAVA',
					}
				},
				/* 局部过滤器 */
				filters:{
					'single':function(val){
						return val.substring(2,3);
					},
					/* 局部过滤器可携带其他参数 */
					'parem':function(val,start,end){
						return val.substring(start,end);
					}
				}
			})
			
		</script>
	</body>
</html>

4.计算属性

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

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="sum">
			<!-- 计算属性 -->
			<table border="1" style="width: 700px; height: 400px;">
				<tr>
					<td>帽子</td>
					<td>253</td>
					<td><input  v-model="maozi" /></td>
					<td>{{maozitotal}}</td>
				</tr>
				<tr>
					<td>衣服</td>
					<td>777</td>
					<td><input  v-model="yif" /></td>
					<td>{{yiftotal}}</td>
				</tr>
				<tr>
					<td>裤子</td>
					<td>245</td>
					<td><input  v-model="kuzi" /></td>
					<td>{{kuzitotal}}</td>
				</tr>
				<tr>
					<td>鞋子</td>
					<td>88</td>
					<td><input  v-model="xiezi" /></td>
					<td>{{xiezitotal}}</td>
				</tr>
				<tr>
					<td>总价</td>
					<td colspan="4">{{total}}</td>
				</tr>
			</table>
			
		</div>

		<script type="text/javascript">
			new Vue({
				el: '#sum',
				data() {
					return {
						maozi:1,
						yif:1,
						kuzi:1,
						xiezi:1,
					
					}
				},
				computed:{
					maozitotal(){
						return this.maozi*253
					},
					yiftotal(){
						return this.yif*777
					},
					kuzitotal(){
						return this.kuzi*245
					},
					xiezitotal(){
						return this.xiezi*88
					},
					total(){
						return this.maozitotal+this.yiftotal+this.kuzitotal+this.xiezitotal
					}
				},
				
			})
		</script>
	</body>
</html>

?相当于以往商品列表实现,更加便捷

5.监听属性

?监听属性 watch,我们可以通过 watch 来响应数据的变化
? ?watch:{}

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
	</head>
	<body>
		<div id="sum">
			
			<!-- 监听属性 -->
			千米 <input v-model="km" />
			米 <input  v-model="m"  />
		</div>

		<script type="text/javascript">
			new Vue({
				el: '#sum',
				data() {
					return {
						
						km:2,
						m:2000,
					}
				},
				
				 watch:{
					km:function(v){
						this.m=parseInt(v)*1000;
					},
					m:function(v){
						this.km=parseInt(v)/1000;
					}
				 }
			})
		</script>
	</body>
</html>

?计算属性(computed)和监听属性(watch)的区别

? ? ? ? 1.?computed用来监控自己定义的变量,该变量不在data里面声明,直接在computed里面定义,然后就可以在页面上进行双向数据绑定展示出结果或者用作其他处理;
? ? ? ? ?computed比较适合对多个变量或者对象进行处理后返回一个结果值,也就是说当多个变量中的某一个值发生了变化则我们监控的这个值也就会发生变化。

? ? ? ? 2.?watch主要用于监控vue实例的变化,它监控的变量当然必须在data里面声明才可以,它可以监控一个变量,也可以是一个对象。
?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 12:54:58  更:2021-10-29 12:55:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:09:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码