vue

什么是vue.js

  • Vue.js 是目前最火的一個前端框架,React是最流行的一個前端框架(React除了開發網站,還可以開發手機App, Vue語法也是可以用于進行手機App開發的,需要借助于Weex)

  • Vue.js 是前端的主流框架之一,和Angular.js、React.js 一起,并成為前端三大主流框架!

  • Vue.js 是一套構建用戶界面的框架,只關注視圖層,它不僅易于上手,還便于與第三方庫或既有項目整合。(Vue有配套的第三方類庫,可以整合起來做大型項目的開發)

基本指令

vue.min.js 官網下載

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script type="text/javascript" src="../js/vue.min.js"></script>
</head>
<body>
    <div id="app">
        <span>{{msg}}</span>
    </div>
</body>
<script type="text/javascript">
創建一個vue的實例,當頁面引入vue.min.jshou,瀏覽器的內存中會存在一個vue的構造函數
new 出來的 vue對象就是 MVVM中的 VM調度者
var  vm = new Vue({

    el:'#app',當前的vue實例,會控制頁面中id是app的區域
    data:{data屬性中,存放的時el區域要用到的數據
        msg:'hello vue '

    }

})
</script>
</html>

v-cloak 指令

當引用的vue.js庫沒有完成加載時,html中的{{msg}}表達式就會展示成原始代碼
可以在標簽中加上 v-cloak,在style中設置display:none即可

<style type="text/css">
  [v-cloak]{
        display: none;
  }
</style>
<div id="app">
    <span v-cloak>{{msg}}</span>
</div>

插值表達式

  • {{msg}}
會出現上述表達式展示源碼問題,但是該方式不會影響標簽中除表達式外的其他內容
例:<span>這是{{msg}}的內容</span>  
  • v-text="msg"
不會出現上述表達式展示源碼問題,但是該方式會覆蓋標簽中的內容
例:<span v-text="msg">vue text</span>  
若msg是abc 則vue text將被替換成abc
  • v-html="msg"
如果需要向頁面中寫入HTML標簽時,則需要使用 v-html
    <div id="app">
        <span v-html="msg1"></span>
    </div>
<script type="text/javascript">
var  vm = new Vue({
    el:'#app',
    data:{
        msg:'<h2>我是H2</h2>'
    }
})
</script>

v-bind 用于綁定屬性的指令

var  vm = new Vue({
    el:'#app',
    data:{  
          value1:'按鈕'
    }
})
<input type="button"  value="value1" name="" >

效果如下:


image.png
<input type="button"  v-bind:value="value1" name="" >

效果如下:


image.png

v-bind 簡寫方式, 效果一樣

<input type="button"  :value="value1" name="" >

v-on:click 標簽綁定單擊事件

<script type="text/javascript">
var  vm = new Vue({
    el:'#app',
    data:{
        value1:'按鈕',
    },
    methods:{在這里定義當前vue實例用到的函數
        show:function(){ alert("綁定點擊事件") }
    }
})
<input type="button"  value="按鈕1" name="" v-on:click="show" >

v-on: 簡寫方式 @

<input type="button"  value="按鈕1" name="" @click="show" >

在methods中的函數如果想要獲取data中定義的屬性值
可以通過this.屬性名獲取,this.方法名

var  vm = new Vue({
    el:'#app',
    data:{
        msg:'hello vue ',
        value1:'按鈕',
    },
    methods:{
        show:function(){ alert("綁定點擊事件") },
        show2:function(){ alert(this.msg); }
    }
})

vue會監聽data中屬性值的變化,并且實時更新到頁面中

    <div id="app">
        <span v-cloak>{{msg}}</span>    
        <input type="button"  value="按鈕3" name="" @click="show3" >
    </div>
var  vm = new Vue({
    el:'#app',
    data:{
        msg:'hello vue ',
    },
    methods:{//在這里定義當前vue實例用到的函數
        show3:function(){ this.msg='msg value changed'; }
    }
})
  • 點擊按鈕3之前頁面展示


    image.png
  • 點擊按鈕3之后頁面展示


    image.png

事件修飾符

  • stop 阻止事件冒泡
var  vm = new Vue({
    el:'#app',
    data:{
        msg:'hello vue ',
        msg1:'<h2>我是H2</h2>',
        value1:'按鈕',
    },
    methods:{
        show4:function(){ alert('4'); },
        show5:function(){ alert('5'); }
       
    }
})
<div  @click="show5">
    <input type="button"  value="按鈕4" name="" @click.stop="show4" >
</div>
  • capture 監聽捕獲事件
var  vm = new Vue({
    el:'#app',
    data:{
        msg:'hello vue ',
        msg1:'<h2>我是H2</h2>',
        value1:'按鈕',
    },
    methods:{
        show4:function(){ alert('4'); },
        show5:function(){ alert('5'); }
       
    }
})
<div  @click.capture="show5">
    <input type="button"  value="按鈕4" name="" @click.stop="show4" >
</div>

結果: 【點擊按鈕4,會先彈出5 ,再彈出4.】

  • self 只有元素本身可以觸發綁定的事件
var  vm = new Vue({
    el:'#app',
    data:{
        msg:'hello vue ',
        msg1:'<h2>我是H2</h2>',
        value1:'按鈕',
    },
    methods:{
        show4:function(){ alert('4'); },
        show5:function(){ alert('5'); }
       
    }
})
<div  @click.self="show5">
    <input type="button"  value="按鈕4" name="" @click="show4" >
</div>

結果: 【點擊div時,只會彈出5 ,不再彈出4.】

v-model 實現數據雙向綁定;只能用于表單元素

var  vm = new Vue({
    el:'#app',
    data:{
        msg:'hello vue ',
    }
})
<input type="text"  value="按鈕7" name="" v-model="msg" >

結果:【當文本框中的值改變時,data中的msg也隨之改變】

v-once 如果展示的信息后續不需要再修改,可以使用該指令,可以提高性能

vue中樣式的操作

  • :class="['類選擇器','類選擇器',..]" 括號中的類選擇器一定要有單引號括起來
  • 如果沒有單引號,則會被當做data中的屬性,例如案例代碼中的 flag
  • 括號中可以使用表達式
<style type="text/css">
        div{
           width: 300px;
           height: 100px;
        }
       .showStyle1{

           color:blue;
       }
       .showStyle2{

           font-size:30px;
       }
       .showStyle3{

           background-color: green;
       }
</style>
<div :class="['showStyle1','showStyle2',flag?'showStyle3':'']">
    div中的內容
</div>
var  vm = new Vue({
    el:'#app',
    data:{
        flag:true,
    }
})
  • 當flag為true時,效果如下 (請自行忽略我的程序員配色)


    image.png
  • 當flag為false時,效果如下


    image.png

簡寫方式,效果相同

<div :class="['showStyle1','showStyle2',{showStyle3:flag}]">
    div中的內容
</div>

:class={樣式名:boolean,樣式名:boolean,...} 效果同上

<style type="text/css">
        div{
           width: 300px;
           height: 100px;
        }
       .showStyle1{

           color:blue;
       }
       .showStyle2{

           font-size:30px;
       }
       .showStyle3{

           background-color: green;
       }
</style>
<div :class="{showStyle1:true, showStyle2:true, showStyle3:false}">
    div中的內容
</div>

:class="data中屬性" 效果同上

var  vm = new Vue({
    el:'#app',
    data:{
        styleObj:{showStyle1:true, showStyle2:true, showStyle3:false}
    }
})
<div :class="styleObj"> div中的內容 </div>

v-for 指令 用于遍歷數組、集合

ar  vm = new Vue({
    el:'#app',
    data:{
        list1:['一班','二班','三班','四班','五班']
    },
    methods:{//在這里定義當前vue實例用到的函數
    }
})

item 是數組或集合中的每個實例,只是一個變量名稱,寫法不是固定的

<p v-for="item in list1">{{item}}</p>

v-for="(item,i) in List" i 是每個實例的下標,從 0 開始

遍歷復雜集合

var  vm = new Vue({
    el:'#app',
    data:{
        list2:[
            {id:'1' ,name :'zsa1'},
            {id:'2' ,name :'zsa2'},
            {id:'3' ,name :'zsa3'}
        ]
    },
    methods:{//在這里定義當前vue實例用到的函數
    }
})
<p v-for="user in list2">編號:{{user.id}},姓名:{{user.name}}</p>

遍歷對象

<p v-for="(key,val,i) in userInfo">{{key}} -- {{val}} -- {{i}}</p>
var  vm = new Vue({
    el:'#app',
    data:{
        userInfo:{
                id:"1",
                name:"jack"
            }
    },
    methods:{//在這里定義當前vue實例用到的函數
    }
})

當list對象發生變化,vue-model會重新加載

<div>
            id:<input type="text" v-model="id" > name:<input type="text" v-model="name">
            <input type="button" value="add" v-on:click="add">
        </div>
var  vm = new Vue({
    el:'#app',
    data:{
        list1:[
                {id:'1' ,name :'zsa1'},
                {id:'2' ,name :'zsa2'},
                {id:'3' ,name :'zsa3'}
            ],
           
            id:"",
            name:""
    },
    methods:{//在這里定義當前vue實例用到的函數
          add(){
                var info = {"id":this.id,"name":this.name};
                this.list1.push(info);
            }
    }
})

v-for中的key

<div id="app">
        <input type="button" value="add" v-on:click="add">
        <p v-for="(item,i) in list " :key="item.id">
            <input type="checkbox">  {{item.id}} -- {{item.name}}
        </p>
    </div>
</body>
<script>
     var vue = new Vue({
        el:"#app",
        data:{
            list:[
                {id:"1",name:"jack"},
                {id:"2",name:"tom"},
                {id:"3",name:"alen"}
            
            ]
            
        },
        methods: {
            add(){
                var info = {id:"4",name:"Json"};
                this.list.unshift(info);
               
            }
        }
     })
</script>

刪除列表中的元素

<div id="app">
        <table>
            <tr v-for="item in list">
                <td>{{item.id}}</td>
                <td>{{item.name}}</td>
                <td>
                     // prevent  阻止默認事件
                    <a href="" @click.prevent="del(item.id)">刪除</a>
                    <a href="" @click.prevent="del1(item.id)">刪除1</a>
                </td>
            </tr>
        </table>
        
    </div>
var mv = new Vue({
        el:"#app",
        data:{
            list:[
                {id:'1' ,name :'zsa1'},
                {id:'2' ,name :'zsa2'},
                {id:'3' ,name :'zsa3'}
            ]
        },
        methods:{
            del(id){
                
                for(let i=0;i<this.list.length ;i++){
                    if(this.list[i].id == id){
                        this.list.splice(i,1);
                        break;
                    }
                }
            },
            del1(id){
                var index = this.list.findIndex(function(item){
                    return item.id == id;
                })
                this.list.splice(index,1);
            }
        }
    })

跟進內容查詢過濾集合數據

<div id="app">
        
        <input type="text" value="" @change="search" v-model="searchName">
        <p v-for="item in  search(searchName)" :key="item.id">
            <input type="checkbox">   {{item.name}}
        </p>
    </div>
<script>
     var vue = new Vue({
        el:"#app",
        data:{
            list:[
                {id:"1",name:"jack"},
                {id:"2",name:"tom"},
                {id:"3",name:"alen"},
                {id:"4",name:"jackson"}
            
            ],
            searchName:""
            
        },
        methods: {
            
            search(searchNameParam){
                return this.list.filter(item => {
                    return item.name.indexOf(searchNameParam) != -1;
                });
            }
        }
     })
</script>

如果 in 后面是一個數字 ,count則從1 開始

<p v-for="count in 10">{{count}}</p>

分支結構

  • 只有表達式符合成立的標簽才會展示
var  vm = new Vue({
    el:'#app',
    data:{
        score:'69'
    },
    methods:{//在這里定義當前vue實例用到的函數
    }
})
   <div id="app">
        <p v-if="score>80 && score<90">良好</p>
        <p v-else-if="score>80 && score<100">優秀</p>
        <p v-else="score<80">及格</p>
    </div>

v-show 功能與v-if相同,區別在于v-show的條件表達式為false時,實際上標簽已經存在網頁中,只不過設置成display:none
而v-if 并不會將標簽畫出

var  vm = new Vue({
    el:'#app',
    data:{
        showFlag:false
    },
    methods:{//在這里定義當前vue實例用到的函數
    }
})
    <div id="app">
        <div v-show="showFlag">演示v-show</div>
    </div>
  • 查看網頁源碼


    image.png

v-for 與 v-if 集合使用

<p v-if="user.id=='2'" v-for="user in list2">編號:{{user.id}},姓名:{{user.name}}</p>

vue 的常用特性

  • 表單特性 :表單中的組件都是基于v-model進行數據綁定的
  1. 單選框,復選框,下拉選不需要配置相同的name組,只要綁定相同的v-model即可
<input type="radio" name="" value="1" v-model="sex"> 男
<input type="radio" name="" value="2" v-model="sex"> 女 
var  vm = new Vue({
    el:'#app',
    data:{
        sex:'1'
    },
    methods:{//在這里定義當前vue實例用到的函數
    }
})
  • sex 初始值時1 ,頁面則默認選擇男
  • 注意: 下拉選的v-model 綁定在<select> 標簽中

表單修飾符

  • v-model.number 將字符串轉為數字
  • v-model.trim 去除字符串兩邊的空白字符

Vue.js——vue-resource全攻略

Vue.js是數據驅動的,這使得我們并不需要直接操作DOM,如果我們不需要使用jQuery的DOM選擇器,就沒有必要引入jQuery。vue-resource是Vue.js的一款插件,它可以通過XMLHttpRequest或JSONP發起請求并處理響應。也就是說,$.ajax能做的事情,vue-resource插件一樣也能做到,而且vue-resource的API更為簡潔。另外,vue-resource還提供了非常有用的inteceptor功能,使用inteceptor可以在請求前和請求后附加一些行為,比如使用inteceptor在ajax請求時顯示loading界面。

vue-resource特點

1. 體積小

vue-resource非常小巧,在壓縮以后只有大約12KB,服務端啟用gzip壓縮后只有4.5KB大小,這遠比jQuery的體積要小得多。

2. 支持主流的瀏覽器

和Vue.js一樣,vue-resource除了不支持IE 9以下的瀏覽器,其他主流的瀏覽器都支持。

3. 支持Promise API和URI Templates

Promise是ES6的特性,Promise的中文含義為“先知”,Promise對象用于異步計算。
URI Templates表示URI模板,有些類似于ASP.NET MVC的路由模板。

4. 支持攔截器

攔截器是全局的,攔截器可以在請求發送前和發送請求后做一些處理。
攔截器在一些場景下會非常有用,比如請求發送前在headers中設置access_token,或者在請求失敗時,提供共通的處理方式。

在發送請求后,使用then方法來處理響應結果,then方法有兩個參數,第一個參數是響應成功時的回調函數,第二個參數是響應失敗時的回調函數。

then方法的回調函數也有兩種寫法,第一種是傳統的函數寫法,第二種是更為簡潔的ES 6的Lambda寫法:```
// 傳統寫法
this.$http.get('/someUrl', [options]).then(function(response){
    // 響應成功回調
}, function(response){
    // 響應錯誤回調
});


// Lambda寫法
this.$http.get('/someUrl', [options]).then((response) => {
    // 響應成功回調
}, (response) => {
    // 響應錯誤回調
});

支持的HTTP方法

get(url, [options])
head(url, [options])
delete(url, [options])
jsonp(url, [options])
post(url, [body], [options])
put(url, [body], [options])
patch(url, [body], [options])

發送get請求:

<body>
    <div id="app">
        <input type="button" v-on:click="get" value="get">
        <p v-model="getInfo">{{getInfo}}</p>
    </div>
    
</body>
<script>
    var vue = new Vue({
       el:"#app",
       data:{
           getInfo:"aa"
           
       },
       methods: {
           
           get(){
            this.$http.get('http://www.liulongbin.top:3005/api/getlunbo').then(res => {
                console.log(res.body);
            })
           }
       }
    })
</script>

發送post請求:

postInfo() {
            var url = 'http://www.liulongbin.top:3005/api/post';
            // post 方法接收三個參數:
            // 參數1: 要請求的URL地址
            // 參數2: 要發送的數據對象
            // 參數3: 指定post提交的編碼類型為 application/x-www-form-urlencoded
            this.$http.post(url, { name: 'zs' }, { emulateJSON: true }).then(res => {
                console.log(res.body);
            });
            }

發送JSONP請求獲取數據:

jsonpInfo() { // JSONP形式從服務器獲取數據
var url = 'http://www.liulongbin.top:3005/api/jsonp';
this.$http.jsonp(url).then(res => {
 console.log(res.body);
});
}

通過接口獲取產品信息集合

<body>
    <div id="app">
        <input type="button" @click="getprodlist" value="getprodlist">
        <p v-for="item in list" :key="item.id">
            {{item.id}} --  {{item.name}} -- {{item.ctime}}
        </p>
    </div>
</body>
<script>
    var vue = new Vue({
       el:"#app",
       data:{
           list:[]
           
       },
       methods: {
           
          getprodlist(){
            this.$http.get('http://www.liulongbin.top:3005/api/getprodlist').then(res => {
                //status message
                console.log(res.body);
                if(res.body.status == 0){
                   this.list = res.body.message;
                }
            })
           }
       }
    })
</script>

什么是組件

組件是可復用的 Vue 實例,說白了就是一組可以重復使用的模板,跟 JSTL 的自定義標簽、Thymeleaf 的 th:fragment 等框架有著異曲同工之妙。

注意:在實際開發中,我們并不會用以下方式開發組件,而是采用 vue-cli 創建 .vue 模板文件的方式開發,以下方法只是為了讓大家理解什么是組件。

  <div id="app">
        <beixi></beixi>
    </div>
     <script>
        //注冊組件
         Vue.component("beixi",{
             template:'<li>hello</li>'
         });
         var app = new Vue({
             el:"#app",
         });
     </script>

Vue.component():注冊組件
beixi:自定義組件的名字
template:組件的模板

使用 props 屬性動態傳遞參數

v-for=“item in items”:遍歷 Vue 實例中定義的名為 items 的數組,并創建同等數量的組件
v-bind:value=“item”:將遍歷的 item 項綁定到組件中 props 定義的名為 value屬性上;= 號左邊的 value 為 props 定義的屬性名,右邊的為 item in items 中遍歷的 item 項的值

<body>
    <div id="app">
        <!--組件:使用props把值傳遞給組件-->
        <blog-post v-for="item in items" v-bind:value="item"></blog-post>
    </div>
     <script>
         Vue.component("blog-post",{
             props:['value'],
             template:'<li>{{value}}</li>'
         });
         var app = new Vue({
             el:"#app",
             data:{
                 items:['beixi','jzj','賈志杰']
             }
         });
     </script>
</body>

什么是Axios

Axios 是一個開源的可以用在瀏覽器端和 NodeJS 的異步通信框架,她的主要作用就是實現 AJAX 異步通信

為什么要使用 Axios

由于 Vue.js 是一個 視圖層框架 并且作者(尤雨溪)嚴格準守 SoC (關注度分離原則),所以 Vue.js 并不包含 AJAX 的通信功能,為了解決通信問題,作者單獨開發了一個名為 vue-resource 的插件,不過在進入 2.0 版本以后停止了對該插件的維護并推薦了 Axios 框架。少用jQuery,因為它操作Dom太頻繁!

在線引入axios。在項目開發中會安裝axios組件(npm install axios)
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
    axios.get("http://localhost:9001/vue/get").then(function (response) {
        console.log(response.data);
    });

    axios.post("http://localhost:9001/vue/post",{
        name:"jack",
        age:"23"
    }).then(function (response) {
        //console.log(response);
    });

@RestController
@RequestMapping("vue")
public class VueTestController {

    @RequestMapping("/get")
    public User gerUser(){
        User user = new User();
        user.setName("jack");
        user.setAge(12);
        return user;
    }

    @PostMapping("/post")
    public void setUser(@RequestBody User paramUser){
        System.out.println(paramUser.getName());
        System.out.println(paramUser.getAge());
    }
}

并發請求

將多個請求同時發送,由服務端統計處理。

   function getVue() {
        axios.get("http://localhost:9001/vue/get").then(function (response) {
            console.log(response.data);
        });
    }

    function postVue() {
        axios.post("http://localhost:9001/vue/post",{
            name:"jack",
            age:"23"
        }).then(function (response) {
            //console.log(response);
        });
    }
     //返回結果處理
     axios.all([getVue(),postVue()]).then(axios.spread(function (res1,res2) {
        console.log(res1.data);
        console.log(res2.data);
    }));

什么是計算屬性

當一些數據需要根據其它數據變化時,需要進行處理才能去展示,雖然vue提供了綁定數據表達式綁定的方式,但是設計它的初衷只是用于簡單運算的。在模板中放入太多的邏輯會讓模板過重且難以維護,對于一些比較復雜和特殊的計算有可能就捉襟見肘了,而且計算的屬性寫在模板里也不利于項目維護

computed主要的作用:

分離邏輯(模板和數據分離)
??緩存值
??雙向綁定(getter,setter)

<body>
    <div id="app">
        <input type="text"  v-model="num1"/><input type="text" v-model="num2"/>
        <p>求和結果{{result}}</p>
    </div>
    
</body>
<script>
    var app=new Vue({
        el:"#app",
        data:{num1:1,num2:2},
        computed:{//計算屬性
           result:function(){
               return parseInt(this.num1)+parseInt(this.num2);
           }
        }
    })
</script>

npm安裝vue ,vue-cli

安裝node.js

https://nodejs.org/en/

node.js官網下載并安裝node,安裝過程很簡單,一直點下一步就ok了

image.png

-- 鏡像加速
npm config set registry=http://registry.npm.taobao.org

image.png

安裝vue

image.png

安裝vue-cli

image.png

初始化vue項目目錄

image.png

啟動vue

image.png

安裝webpack


image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容

  • 基本用法 一、vuejs簡介 是一個構建用戶界面的框架 是一個輕量級的MVVM(Model-View-ViewMo...
    深度剖析JavaScript閱讀 18,262評論 0 8
  • 最近在逛各大網站,論壇,以及像SegmentFault等編程問答社區,發現Vue.js異常火爆,重復性的提問和內容...
    忘川慕白閱讀 5,966評論 7 113
  • 狂神說Vue筆記 想要成為真正的“互聯網Java全棧工程師”還有很長的一段路要走,其中前端是繞不開的一門必修課。本...
    華夏天驕閱讀 812評論 0 0
  • # 傳智播客vue 學習## 1. 什么是 Vue.js* Vue 開發手機 APP 需要借助于 Weex* Vu...
    再見天才閱讀 3,585評論 0 6
  • 編碼步驟 引入vue.js文件 定義一個vue的管理范圍 vue1.0里面vue的管理區域的id可以定義在...
    Ht_何甜閱讀 970評論 0 1