<!-- 案例一 -->
<!-- <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./vue.js"></script>
</head>
<body>
<div id="root">
<input type="text" v-model="inputVal">
<button @click="handleBtnClick">提交</button>
<ul>
<li v-for="(item, index) in list" :key="index">{{item}}</li>
</ul>
</div>
<script>
var vm = new Vue({
el: "#root",
data: {
list: [],
inputVal: '',
},
methods: {
handleBtnClick() {
// this.$data.list.push(this.$data.inputVal);
this.list.push(this.inputVal);
this.inputVal = ''
}
}
})
</script>
</body>
</html> -->
<!-- 案例二 -->
<!-- <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./vue.js"></script>
</head>
<body> -->
<!-- 介绍MVVM(View[V]:dom《=ViewModel[VM]:vue[dom listeners 、 data bindings]=》Model[M]:plain javascript objects) -->
<!-- <div id="root">
<input type="text" v-model="inputVal">
<button>提交</button>
<ul>
<li v-for="(item, index) in list" :key="index"></li>
</ul>
</div>
<script type="text/javascript">
var vm = new Vue({
el: "#root",
data: {
list: [],
inputVal: ''
}
})
</script>
</body>
</html> -->
<!-- 案例三 -->
<!-- <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>todoList JQuery</title>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
</head>
<body> -->
<!-- 介绍MVP(view视图层《=V发生变化会发送信号给P,P随机执行script里边的代码=》presenter控制层《=P发送ajax请求给M,M返回数据给P=》model模型层)-->
<!-- <div> -->
<!-- view视图层V -->
<!-- <input id="input_elem" type="text">
<button onclick="handleBtnClick()">提交</button>
<ul id="ul_elem"></ul>
</div>
<script type="text/javascript">
// 业务逻辑
// presenter控制器P
var inputElem = $('#input_elem');
var inputVal = inputElem.val();
var ulElem = $("#ul_elem");
ulElem.append('<li>' + inputVal + '</li>');
inputElem.val('');
</script>
</body>
</html> -->
<!-- 案例四 -->
<!-- <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./vue.js"></script>
</head>
<body> -->
<!-- 组件化开发、父子组件传值问题 -->
<!-- <div id="root">
<input type="text" v-model="inputVal">
<button @click="handleBtnClick">提交</button>
<ul>
<todo-item :index='index' :content="item" v-for="(item, index) in list" :key="index" @delete="handleItemDelete"></todo-item>
</ul>
</div>
<script type="text/javascript">
// 定义全局组件
// todoItem驼峰命名组件,在页面引用时,(两个词之间)要用短横线分隔
/* Vue.component('todoItem', {
props: ['content'],
template: '<li>{{content}}</li>'
}) */
// 局部注册组件
var todoItem = {
// props 从父组件向子组件传值
props: ['content', 'index'],
template: '<li @click="handleChildClick">{{content}}</li>',
methods: {
handleChildClick() {
// this.$emit(event, ${[…args]}) event自定义事件名称, args参数 可选
// 子组件向父组件传值
// this.$emit('delete')
this.$emit('delete', this.index)
}
}
}
var vm = new Vue({
el: "#root",
components: {
todoItem,
},
data: {
list: [],
inputVal: '',
},
methods: {
handleBtnClick() {
this.list.push(this.inputVal);
this.inputVal = '';
},
handleItemDelete(index) {
this.list.splice(index, 1);
}
}
})
</script>
</body>
</html> -->
<!-- 案例五 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script src="./vue.js"></script>
</head>
<body>
<!-- vue 计算属性的setter和getter -->
<div id="root">
{{fullName}}
</div>
<script type="text/javascript">
var vm = new Vue({
el: "#root",
data: {
firstName: 'Hello',
lastName: 'World'
},
computed: {
fullName: {
get() {
console.log('计算属性执行一次');
return this.firstName + " " + this.lastName;
},
set(value) {
var arr = value.split(" ");
this.firstName = arr[0];
this.lastName = arr[1];
}
}
},
})
</script>
</body>
</html>
vue 5个demo
最新推荐文章于 2025-01-21 14:32:33 发布