Vue簡單的使用
Vue簡單的使用
1、概念
Vue (讀音 /vjuː/,類似於 view) 是一套用於構建使用者介面的漸進式框架。與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用。Vue 的核心庫只關注檢視層,不僅易於上手,還便於與第三方庫或既有專案整合。另一方面,當與現代化的工具鏈以及各種支援類庫結合使用時,Vue 也完全能夠為複雜的單頁應用提供驅動。
在建立的vue中,初始化一個npm管理的專案npm init -y
在安裝其他的包npm install vue
2、簡單使用(單向繫結)
<div id="app">
{{ message }}
</div>
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
3、插值表示式:
{{…}}寫在標籤體裡,動態顯示
-
支援JS語法,可呼叫JS的內建函式(必須有返回值)
-
可以直接獲取vue例項中定義的資料或函式
<div> {{name}} </div>
4、雙向繫結
v-model:雙向繫結
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id='app'>
學會了什麼:<br>
<input type="checkbox" v-model='language' value="Java">java<br/>
<input type="checkbox" v-model='language' value="Html">Html<br/>
<input type="checkbox" v-model='language' value="Javascript">Javascript<br/>
選中了{{language.join(',')}}
</div>
<script src="./vue/dist/vue.js"></script>
<script>
let vm=new Vue({
el:'#app',
data:{
language:[]
}
})
</script>
</body>
</html>
5、事件繫結 v-on
v-on:click/keyup等等
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<!--事件中直接寫js片段-->
<button v-on:click="num++">點贊</button>
<!--事件指定一個回撥函式,必須是Vue例項中定義的函式-->
<button @click="cancle">取消</button>
<!-- -->
<h1>有{{num}}個贊</h1>
<!-- 事件修飾符 -->
<div style="border: 1px solid red;padding: 20px;" v-on:click.once="hello">
大div
<div style="border: 1px solid blue;padding: 20px;" @click.prevent="hello">
小div <br />
<a href="http://www.baidu.com" @click.prevent.stop="hello">去百度</a>
</div>
</div>
<!-- 按鍵修飾符 -->
<input type="text" v-model='num' v-on:keyup.up='num+=2' @keyup.down='num-=5' @keyup.ctrl=''>
</div>
<script src="./vue/dist/vue.js"></script>
<script>
let vm=new Vue({
el:'#app',
data:{
num:1
},
methods: {
hello(){
alert("點選了這個div")
}
}
});
</script>
</body>
</html>
6、迴圈判斷,監聽器,區域性過濾器和全域性過濾器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<ul>
<li v-for="(user,index) in users " :key='user.name'>
當前索引:{{index}}---{{user.name}}---{{user.gender}}---{{user.age}}<br />
物件的資訊:
<span v-for="(k,v) in user">{{v}}:{{k}}---</span>
</li>
</ul>
<button v-on:click="show=!show">點選我</button>
<h2 v-if='show'>if顯示</h2>
<h2 v-show='show'>show顯示</h2>
<hr />
<button v-on:click='random=Math.random()'>點選我顯示一個隨機數</button>
<span>{{random}}</span>
<h2 v-if='random>=0.7'>看到我了 >=0.75</h2>
<h2 v-if='random>0.5'>看到我了 >=0.5</h2>
<h2 v-else-if='random>=0.4'>看到我了 >=0.4</h2>
<h2 v-else-if='random>0.1'>看到我了 >=0.1</h2>
<hr />
<ul>
<li>math book: price:{{mathPrice}},num:<input type="number" v-model="mathNum"></li>
<li>yu book: price:{{yuPrice}},num:<input type="number" v-model="yuNum"></li>
<li>TotalPrice:{{totalPrice}}</li>
{{message}}
</ul>
<ul>
<li v-for="user in userList">
{{user.id}}----{{user.name}}----{{user.gender==1?'男':'女'}}----{{user.gender |genderFiletr}}----{{user.gender | gFilter}}
</li>
</ul>
</div>
<script src="./vue/dist/vue.js"></script>
<script>
// 全域性過濾器
Vue.filter('gFilter', function (val) {
if (val == 1) {
return "男";
} else {
return "女";
}
})
let app = new Vue({
el: "#app",
data: {
show: true,
random: '',
mathPrice: 40,
mathNum: 1,
yuPrice: 20,
yuNum: 2,
message: '',
users: [{ name: 'aaa', gender: 'male', age: 11 },
{ name: 'bbb', gender: 'male', age: 23 },
{ name: 'ccc', gender: 'famale', age: 45 },
{ name: 'ddd', gender: 'male', age: 13 },
{ name: 'eee', gender: 'male', age: 25 },],
userList: [{ id: 1, name: 'aaa', gender: 1 },
{ id: 2, name: 'ccc', gender: 0 }]
},
// 計算
computed: {
totalPrice() {
return this.mathPrice * this.mathNum + this.yuPrice * this.yuNum
}
},
// 監聽器
watch: {
mathNum(newVal, oldVal) {
// alert("newVal" + newVal + "---->oldVal" + oldVal);
if (newVal >= 3) {
this.message = "超過範圍";
this.mathNum = 3;
} else {
this.message = "";
}
}
},
// 區域性過濾器
filters: {
genderFiletr(val) {
if (val == 1) {
return "男";
} else {
return "女";
}
}
}
})
</script>
</body>
</html>
7、元件化:區域性宣告和全域性宣告
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<button @click='count++'>我被點選了{{count}}次</button>
<!-- <counter></counter>
<counter></counter>
<counter></counter>
<counter2></counter2>
<testCount></testCount>
<count111></count111> -->
<!-- <count111-p></count111-p> -->
<!-- // 全域性宣告的 -->
<count111P></count111P>
<!-- //區域性宣告的 -->
<button-count></button-count>
</div>
<script src="./vue/dist/vue.js"></script>
<script>
//全域性宣告註冊元件
Vue.component("counter", {
template: `<button v-on:click="count++">我被點選了 {{count}} 次</button>`,
data() {
return {
count: 1
}
}
});
Vue.component('count111P', {
template: `<button v-on:click='count++'>我被點選了{{count}}次</button>`,
data() {
return {
count: 1
}
}
});
//區域性宣告註冊元件
const buttonCount={
template: `<button v-on:click="count++">我被點選了 {{count}} 次</button>`,
data() {
return {
count: 1
}
}
};
new Vue({
el: '#app',
data: {
count: 1
},
//區域性宣告的要把元件放到Vue例項中
components:{
'button-count':buttonCount
}
})
</script>
</body>
</html>
相關文章
- vue框架的簡單使用Vue框架
- vue+sortablejs的簡單使用模板VueJS
- vue-directive-tooltip 提示框的簡單使用Vue
- 自制簡單的Tabs(Vue)Vue
- 簡簡單單的Vue2(簡單語法,生命週期,元件)Vue元件
- 簡單的實現vue原理Vue
- vue cli 3的簡單理解Vue
- Vue簡單入門Vue
- Laravel5.7+vue+element-ui 配置及簡單使用LaravelVueUI
- Kdevelop的簡單使用和簡單除錯dev除錯
- vue專案中使用token的身份驗證的簡單實踐Vue
- 簡單介紹Vue使用echarts定製特殊的儀表盤VueEcharts
- requirejs vue vue.router簡單框架UIJSVue框架
- postman的簡單使用Postman
- OD的簡單使用
- RocketMQ的簡單使用MQ
- docker的簡單使用Docker
- SXSSFWorkbook的簡單使用
- peewee的簡單使用
- LayUi的簡單使用UI
- uuid的簡單使用UI
- git的簡單使用Git
- RecyclerView的簡單使用View
- ConcurrentLinkedQueue的簡單使用
- Handler的簡單使用
- Flatbuffer的簡單使用
- 簡單的 Vue.js 表單驗證外掛 (vee-validate) 使用總結Vue.js
- 使用vue-cli腳手架工具建立一個簡單的單頁應用Vue
- 簡單介紹Vue中使用js-cookie詳情VueJSCookie
- vue簡單模板語法Vue
- vue入門 vue基礎之簡單使用4--過濾器(Filter)Vue過濾器Filter
- 使用D3.js+Vue實現一個簡單的柱形圖JSVue
- 簡單的 Vue.js 入門方法Vue.js
- 手寫一個超簡單的VueVue
- Mackdown簡單的使用教程Mac
- shell script的簡單使用
- 協程的簡單使用
- matplotlib簡單的使用(二)