vue.js搭建使用者管理系統練手(五)----嵌入彈窗元件
當我們新增使用者成功後,希望能彈出一個視窗資訊告訴使用者新增成功。
首先在components中新建Alert.vue:
<template>
<div class="alert alert-warning alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
{{message}}
</div>
</template>
<script>
export default {
name: 'alert',
props:["message"],
data () {
return {
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
這裡是通過props的message來進行元件的通訊的!
然後在Customers.vue中引用這個Alert.vue元件:
<template>
<div class="customers container">
<Alert v-if="alert" v-bind:message="alert"></Alert>
<h1 class="page-header">使用者管理系統</h1>
<table class="table table-striped">
<thead>
<tr>
<th>姓名</th>
<th>電話</th>
<th>郵箱</th>
<th></th>
</tr>
</thead>
<tbody>
<tr v-for="customer in customers">
<td>{{customer.name}}</td>
<td>{{customer.phone}}</td>
<td>{{customer.email}}</td>
<td></td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
import Alert from "./Alert"
export default {
name: 'customers',
data () {
return {
customers:[],
alert:""
}
},
methods:{
fetchCustomers(){
this.$http.get("http://localhost:3000/users")
.then(function(response){
//console.log(response);
this.customers = response.body;
})
}
},
created(){
if(this.$route.query.alert){
this.alert = this.$route.query.alert;//將獲得的message賦值給alert,再通過v-bind:message="alert"進行父子元件資訊的傳遞
}
this.fetchCustomers();
},
updated(){
this.fetchCustomers();
},
components:{
Alert
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
最後在新增使用者成功後去傳遞視窗要彈出的資訊message:
<template>
<div class="add container">
<h1 class="page-header">新增使用者</h1>
<form v-on:submit="addCustomer">
<div class="well">
<h4>使用者資訊</h4>
<div class="form-group">
<label>姓名</label>
<input type="text" class="form-control" placeholder="name" v-model="customer.name">
</div>
<div class="form-group">
<label>電話</label>
<input type="text" class="form-control" placeholder="phone" v-model="customer.phone">
</div>
<div class="form-group">
<label>郵箱</label>
<input type="text" class="form-control" placeholder="email" v-model="customer.email">
</div>
<div class="form-group">
<label>學歷</label>
<input type="text" class="form-control" placeholder="education" v-model="customer.education">
</div>
<div class="form-group">
<label>畢業學校</label>
<input type="text" class="form-control" placeholder="graduationschool" v-model="customer.graduationschool">
</div>
<div class="form-group">
<label>職業</label>
<input type="text" class="form-control" placeholder="profession" v-model="customer.profession">
</div>
<div class="form-group">
<label>個人簡介</label>
<!-- <input type="text" class="form-control" placeholder="profile" v-model="customer.profile"> -->
<textarea class="form-control" rows="10" v-model="customer.profile"></textarea>
</div>
<button type="submit" class="btn btn-primary">新增</button>
</div>
</form>
</div>
</template>
<script>
export default {
name: 'add',
data () {
return {
customer:{}
}
},
methods:{
addCustomer(e){
// console.log(123);
if (!this.customer.name || !this.customer.phone || !this.customer.email) {
console.log("請新增對應的資訊!");
}else{
let newCustomer = {
name:this.customer.name,
phone:this.customer.phone,
email:this.customer.email,
education:this.customer.education,
graduationschool:this.customer.graduationschool,
profession:this.customer.profession,
profile:this.customer.profile
}
this.$http.post("http://localhost:3000/users",newCustomer)
.then(function(response){
// console.log(response);
this.$router.push({path:"/",query:{alert:"使用者資訊新增成功"}});
})
e.preventDefault();
}
e.preventDefault();
}
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
就是修改了this.$router.push({path:"/",query:{alert:"使用者資訊新增成功"}});
這一行程式碼!
相關文章
- vue.js搭建使用者管理系統練手(二)----頁面框架搭建Vue.js框架
- vue.js搭建使用者管理系統練手(六)----使用者詳情Vue.js
- vue.js搭建使用者管理系統練手(一)----配置json-serverVue.jsJSONServer
- vue.js搭建使用者管理系統練手(八)----實現搜尋功能Vue.js
- vue.js搭建使用者管理系統練手(三)----http請求列表資料Vue.jsHTTP
- vue.js搭建使用者管理系統練手(七)----使用者詳情的修改和刪除Vue.js
- vue.js搭建使用者管理系統練手(四)----http請求新增列表資料Vue.jsHTTP
- uniapp 自定義彈窗元件APP元件
- 如何使用Vue.js來搭建一個後臺管理系統Vue.js
- svelte元件:Svelte自定義彈窗Popup元件|svelte移動端彈框元件元件
- Flutter 統一彈窗管理的思考與實現Flutter
- laraval-admin彈窗table元件改元件
- 直播app原始碼,Flutter 彈窗元件APP原始碼Flutter元件
- 從零開始做一個SLG遊戲(五):UI系統之彈窗功能遊戲UI
- 線上直播系統原始碼,彈出警告/提示類彈窗原始碼
- iOS開發之彈窗管理iOS
- 後臺管理系統vue.js路由Vue.js路由
- 封裝React AntD的dialog彈窗元件封裝React元件
- 封裝Vue Element的dialog彈窗元件封裝Vue元件
- Element修改彈窗類元件的層級元件
- 鴻蒙系統(HarmonyOS)全域性彈窗實現鴻蒙
- Blazor Bootstrap 元件庫 Toast 輕量彈窗元件介紹Blazorboot元件AST
- win10系統禁止所有彈窗廣告如何設定 win10系統怎麼關閉所有廣告彈窗Win10
- 1分鐘訓練百萬級別節點嵌入,Mila開源圖嵌入訓練系統GraphViteMILAVite
- windows10系統如何遮蔽qq新聞彈窗Windows
- 基於mpvue的簡單彈窗元件mptoastVue元件AST
- win10系統怎麼關閉廣告彈窗 win10關閉惡意彈窗Win10
- 基於Vue.js PC桌面端彈出框元件|vue自定義彈層元件|vue模態框Vue.js元件
- Win10系統阻止彈出OneDrive視窗的方法Win10
- 直播系統程式碼,三種常見的提示彈窗
- Android彈窗元件工作機制之Dialog、DialogFragment(一)Android元件Fragment
- mptosat,一個基於mpvue的toast彈窗元件VueAST元件
- 一個基於mpvue的toast彈窗元件mptoastVueAST元件
- Blazor元件的new使用方式與動態彈窗Blazor元件
- 招投標管理系統搭建
- win10 系統中的布丁新聞彈窗如何取消 win10布丁頭條彈窗怎麼關Win10
- 【vue系列】封裝公共彈窗元件的正確方式Vue封裝元件
- 開發筆記:手動搭建系統後臺-認證使用者筆記