(Vue -01)初始Vue + Vue的響應(yīng)式原理(使用Object.defineProperty給代理對(duì)象添加屬性) + Vue的常用指令 + 條件渲染和列表渲染

Vue官方文檔=>>>首頁(yè)-學(xué)習(xí)下拉欄-文檔-教程 =>火速一鍵進(jìn)入學(xué)習(xí)

漸進(jìn)式JavaScript框架:就是用你想用或者能用的功能特性齐饮,你不想用的部分功能可以先不用绎橘。VUE不強(qiáng)求你一次性接受并使用它的全部功能特性劫狠。(當(dāng)然也可以從頭到尾全部用Vue搭建)


一、初始Vue

1.給Vue準(zhǔn)備一個(gè)容器

(它需要一個(gè)DOM容器牌借,給vue去使用)

    <div id="app">
        <h2>姓名:{{name}}</h2>
        <h2>年齡:{{age}}</h2>
        <!-- v-on:指令用于綁定事件 -->
        <button v-on:click="updateName">修改姓名</button>
        <button v-on:click="updateAge">修改年齡</button>
    </div>

vue的點(diǎn)擊事件綁定 <button v-on:click="方法名">修改姓名</button>

(小回顧)
bindtap="方法名" //微信小程序的觸屏綁定
onclick="方法名()" //原生的點(diǎn)擊綁定

2.引入vue.js文件

方式1:引入本地vue.js文件

    <!-- 開(kāi)發(fā)版本 -->
    <script src="../js/vue.js"></script>
    <!-- 生產(chǎn)版本 (打包上線時(shí)使用此版本)-->
    <script src="../js/vue.min.js"></script>

方式2:通過(guò)CDN引入

   <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.js"></script>
   <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.14/vue.min.js"></script>

3.創(chuàng)建一個(gè)Vue對(duì)象

      let vm = new Vue({
            //指定當(dāng)前Vue對(duì)象操作的DOM容器
            el:'#app',
            //定義當(dāng)前Vue對(duì)象管理的數(shù)據(jù)
            data:{
                name:'張三',
                age:20
            },
            //定義當(dāng)前Vue對(duì)象管理的方法
            methods: {
                //修改姓名的方法
                updateName(){
                    this.name = '李四'
                },
                //修改年齡的方法
                updateAge(){
                    this.age = 30
                }
            },
        })

在vue的配置選項(xiàng)里面宿刮,定義的所有的數(shù)據(jù)以及定義的所有方法,都會(huì)成為Vue的屬性。
在方法里面貌夕,this指向的是對(duì)象本身

el:' #容器的id '民镜, // 指定當(dāng)前Vue對(duì)象操作的DOM容器
data: { }啡专, // 定義當(dāng)前Vue對(duì)象管理的數(shù)據(jù)
methods: { }, // 定義當(dāng)前Vue對(duì)象管理的方法

以下為網(wǎng)頁(yè)顯示效果:

點(diǎn)擊 修改姓名-- 姓名變成李四
點(diǎn)擊 修改年齡-- 年齡變成30


*小注意:初創(chuàng)建vue制圈,會(huì)出現(xiàn)以下2條提示:


*解決方法:
下載安裝vue-devtools工具(官方調(diào)試工具)植旧,
關(guān)閉生產(chǎn)提示:創(chuàng)建Vue對(duì)象前先鍵入: Vue.config.productionTip = false
*安裝vue-devtools工具后,可進(jìn)入后臺(tái)离唐,進(jìn)入Vue的調(diào)試工具以檢查我的數(shù)據(jù)


二病附、Vue的響應(yīng)式原理

1.理解什么是代理對(duì)象

  • 1.定義源對(duì)象
       let obj1 = {
            name:'張三',
            age:20
        }
  • 2.定義代理對(duì)象
       let obj2 = obj1; 
        console.log('obj2:',obj2); 
        //代理對(duì)象修改了源對(duì)象的數(shù)據(jù)
        obj2.name = '李四'; 
        obj2.age = 30; 
        console.log(obj1);   //{name: '李四', age: 30}

obj2是obj1的代理對(duì)象,代理對(duì)象修改了源對(duì)象的數(shù)據(jù)亥鬓。
通過(guò)obj2 修改了obj1 的姓名和年齡完沪,那obj1也變了哦~

2.看一下Vue是如何使用代理對(duì)象的

  • 1.定義源對(duì)象(就是定一份數(shù)據(jù))
       let myData = {
            name:'張三',
            age:20
        }
  • 2.將一個(gè)數(shù)據(jù)傳遞給Vue的data選項(xiàng)(背后做了兩件事情)
    1)設(shè)置Vue實(shí)例的_data屬性,作為當(dāng)前源對(duì)象的代理對(duì)象嵌戈。(響應(yīng)式的核心
    2)將_data里面代理的所有數(shù)據(jù)覆积,再添加到當(dāng)前Vue實(shí)例身上。(為了Vue實(shí)例方便調(diào)用數(shù)據(jù)
        let vm = new Vue({
            data:myData         //把myData這個(gè)對(duì)象傳給了vue實(shí)例
        })
        vm._data.name = '李四';     //data和_data互相影響熟呛,一方變另一方也變
        vm._data.age = 30;
        console.log(vm);
        console.log(myData);

因?yàn)閷?duì)象是引用類型宽档,在傳遞時(shí),傳的是地址庵朝。
操作_data吗冤,真正改變的是data,此時(shí)就可以將_data當(dāng)做是data的代理對(duì)象九府。

3.給對(duì)象添加屬性的幾種方式

       let obj3 = {}
  • 方式一
      obj3.name = '張三';
  • 方式二
      obj3['age'] = 20;
  • 方式三
      Object.defineProperty(obj3,'sex',{
            value:'男',                //屬性值
            enumerable:true,           //允許被枚舉(默認(rèn)不允許)
            configurable:true          //允許被刪除(默認(rèn)不允許)
        })
        console.log(obj3);

Object.defineProperty( 對(duì)象名椎瘟,屬性名,{ 屬性值 } )
通過(guò)Object對(duì)象的defineProperty方法侄旬,給指定的對(duì)象添加指定的屬性肺蔚。
使用這種方式,給對(duì)象添加的屬性儡羔,默認(rèn)不可被枚舉宣羊,不能被刪除
使用這種方式汰蜘,給對(duì)象添加的屬性仇冯,對(duì)屬性的保護(hù)措施更加嚴(yán)格

      //枚舉出對(duì)象的所有屬性(其實(shí)就遍歷出對(duì)象的所有屬性名)
        for(let key in obj3){
            console.log(key);
        }

        //通過(guò)delete關(guān)鍵鉴扫,可以刪除對(duì)象身上的指定屬性
        delete obj3.name
        delete obj3.sex
        console.log(obj3);

如果沒(méi)有設(shè)置enumerable值和configurable值赞枕,那就不可以遍歷出對(duì)象的屬性名,也不可以刪除哦

*此處插個(gè)播坪创,看看不要錢 JavaScript中的可枚舉屬性與不可枚舉屬性

4.Vue響應(yīng)式的原理 ★★★★★

    <div>
        <h2>姓名:<span id="name"></span></h2>
        <h2>年齡:<span id="age"></span></h2>
    </div>
  • 1.定義一個(gè)源對(duì)象
       let data = {
            name:'張三',
            age:20
        }
  • 2.定義一個(gè)代理對(duì)象(使用_data 去代理 data)
       let _data = {}
  • 3.使用Object.defineProperty給代理對(duì)象添加屬性
        Object.defineProperty(_data,'name',{
            //這里除了寫value炕婶,還可以寫2個(gè)方法哦~
            //get方法,用于返回屬性的值(當(dāng)我們調(diào)用name屬性獲取值時(shí)莱预,會(huì)調(diào)用get方法)
            get(){
                // console.log('get方法執(zhí)行了');
                return data.name
            },
            //set方法柠掂,用于設(shè)置屬性的值(當(dāng)我們調(diào)用name屬性設(shè)置值時(shí),會(huì)調(diào)用set方法)
            set(val){
                // console.log('set方法執(zhí)行了');
                data.name = val
                //當(dāng)代理對(duì)象依沮,監(jiān)聽(tīng)到數(shù)據(jù)發(fā)生變化了涯贞,就會(huì)重新渲染頁(yè)面
                document.querySelector('#name').innerHTML = data.name
            }
        })
        Object.defineProperty(_data,'age',{
            get(){
                return data.age
            },
            set(val){
                data.age = val
                //當(dāng)代理對(duì)象,監(jiān)聽(tīng)到數(shù)據(jù)發(fā)生變化了危喉,就會(huì)重新渲染頁(yè)面
                document.querySelector('#age').innerHTML = data.age
            }
        })
        console.log(_data.name);
        console.log(_data.age);
        _data.name = '李四'
        _data.age = 30
        console.log(data);

除了寫value宋渔,還可以寫2個(gè)方法哦~

  • get方法,用于返回屬性的值(當(dāng)我們調(diào)用name屬性獲取值時(shí)辜限,會(huì)調(diào)用get方法)
  • set方法皇拣,用于設(shè)置屬性的值(當(dāng)我們調(diào)用name屬性設(shè)置值時(shí),會(huì)調(diào)用set方法)
    當(dāng)代理對(duì)象薄嫡,監(jiān)聽(tīng)到數(shù)據(jù)發(fā)生變化時(shí)氧急,就會(huì)重新渲染頁(yè)面

三、Vue的常用指令

v-bind: 用于綁定屬性毫深,通過(guò) v-bind: 綁定過(guò)的屬性吩坝,可以在屬性值可以寫表達(dá)式。
v-bind: 可以用 : 簡(jiǎn)寫哑蔫。

v-on: 用于綁定事件钉寝,通過(guò)v-on:綁定過(guò)的事件,可以指定Vue實(shí)例定義的方法闸迷。
v-on: 可以用@簡(jiǎn)寫瘩蚪。

v-model 指令,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的雙向綁定稿黍,v-model指令是 v-bind:value 和 v-on:input 的簡(jiǎn)寫疹瘦。

來(lái)看看吧=>>>

    <!-- 我們需要一個(gè)容器 -->
    <div id="app">
        <div>
            <span>姓名:</span>
            <input type="text" v-bind:value="name">{{name}}
        </div>
        <div>
            <span>年齡:</span>
            <input type="text" :value="age">{{age}}
        </div>
    </div>
    <script src="../js/vue.js"></script>
    <script>
        // 關(guān)閉生產(chǎn)提示
        Vue.config.productionTip = false
        // 用vm接收一下
        let vm = new Vue({
            el: '#app',
            data: {
                name: '張三',
                age: 20,
            }
        })
    </script>

以上,到目前為止是單向綁定巡球。
通過(guò)在后臺(tái) vm.data = '李四' 言沐,可以把頁(yè)面的數(shù)據(jù)改掉;但是在頁(yè)面的 input 中做修改并不會(huì)改變后臺(tái)的數(shù)據(jù)哦~

問(wèn)題來(lái)了:如何給它做雙向綁定呢酣栈?
綁定一個(gè)input事件 险胰,
代碼如下:

    <div id="app">
        <div>
            <span>姓名:</span>
            <input type="text" v-bind:value="name" v-on:input="updateName">{{name}}
        </div>
        <div>
            <span>年齡:</span>
            <!-- 如果事件方法的代碼不是很多,可以寫在行內(nèi)矿筝,注意:這里不能寫this起便,$event是事件對(duì)象 -->
            <input type="text" :value="age" @input="age = $event.target.value">{{age}}
        </div>
        <div>
            <span>工作:</span>
            <input type="text" v-model="job">{{job}}
        </div>
    </div>
       let vm = new Vue({
            el: '#app',
            //數(shù)據(jù)
            data: {
                name: '張三',
                age: 20,
                job: '程序員'
            },
            methods: {
                updateName(e){                       //這邊可以接收一個(gè)事件對(duì)象e,可以通過(guò)e.target獲取當(dāng)前元素
                    this.name = e.target.value       // 獲取文本框里面的內(nèi)容,更新數(shù)據(jù)
                }
            },
        })

設(shè)置了一個(gè)更新姓名的方法榆综,該方法更新name屬性值
注意:在調(diào)用方式時(shí)妙痹,如果沒(méi)有傳遞參數(shù),那么事件方法會(huì)默認(rèn)傳一個(gè)事件對(duì)象參數(shù)鼻疮。
這里邊接收事件對(duì)象 e怯伊,可以通過(guò) e.target 獲取當(dāng)前元素
e.target.value 獲取文本框里面的內(nèi)容
this.name = e.target.value 更新數(shù)據(jù)

如果事件方法的代碼不是很多,可以寫在行內(nèi)判沟,
注意:不能寫 this 耿芹。示例:

  <input type="text" :value="age" @input="age = $event.target.value">

四、Vue的條件渲染和列表渲染

1.條件渲染

  • v-if 條件渲染
    代碼如下:
    <!-- 根據(jù)成績(jī)挪哄,顯示下面的等級(jí) -->
    <div id="app">
        <h2 v-if="score>=90">優(yōu)秀</h2>
        <h2 v-else-if="score>=80">良好</h2>
        <h2 v-else-if="score>=70">中等</h2>
        <h2 v-else-if="score>=60">合格</h2>
        <h2 v-else>差</h2>
    </div>
    <script src="../js/vue.js"></script>
    <script>
        Vue.config.productionTip = false
        new Vue({
            el:'#app',
            data:{
                score:55,
            }
        })
    </script>

頁(yè)面效果:
根據(jù)成績(jī)吧秕,顯示對(duì)應(yīng)的等級(jí)
  • v-if / v-show 條件渲染

v-if 指令用于條件渲染,表達(dá)式返回true迹炼,顯示元素砸彬;否則不顯示元素。
v-if 每次根據(jù)isShow的值疗涉,確定是否渲染頁(yè)面拿霉。

v-show 指令也是用于條件渲染,表達(dá)式返回true咱扣,顯示元素绽淘;否則不顯示元素。
v-show 模板已經(jīng)渲染成功闹伪,通過(guò)樣式控制顯示隱藏沪铭。

<div id="app">
    <!-- 根據(jù)成績(jī),顯示下面的等級(jí) -->
    <h2 v-if="score>=90">優(yōu)秀</h2>
    <h2 v-else-if="score>=80">良好</h2>
    <h2 v-else-if="score>=70">中等</h2>
    <h2 v-else-if="score>=60">合格</h2>
    <h2 v-else>差</h2>
    <hr>

    <button @click="isShow=!isShow">顯示/隱藏</button>

    <!-- v-if 每次要根據(jù)isShow的值偏瓤,確定是否渲染頁(yè)面 -->
    <div v-if="isShow">
        <img src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fc-ssl.duitang.com%2Fuploads%2Fitem%2F201804%2F28%2F20180428174908_sgsyj.thumb.1000_0.jpg&refer=http%3A%2F%2Fc-ssl.duitang.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640144539&t=de45197a8aa3bf884b08b791723e7ed0">
    </div>
    <hr>
    <!-- v-show 模板已經(jīng)渲染成功杀怠,通過(guò)樣式控制顯示隱藏 -->
    <div v-show="isShow">
        <img src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fpic40.nipic.com%2F20140428%2F9081536_114914525167_2.jpg&refer=http%3A%2F%2Fpic40.nipic.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1640144712&t=1261090ac684bf8e3c83f61ed012a2a7">
    </div>
</div>
   <script src="../js/vue.js"></script>
   <script>
    Vue.config.productionTip = false
    new Vue({
        el:'#app',
        data:{
            score:55,
            isShow:false
        }
   })
   </script>

問(wèn)題來(lái)了:v-if 和 v-show 如何選擇??

  • 如果頁(yè)面需要反復(fù)切換顯示和隱藏厅克,用v-show赔退。
  • 如果頁(yè)面中有很多模塊需要隱藏,用戶可能只對(duì)其中的某個(gè)模塊感興趣证舟,用v-if硕旗,所有的模塊首屏加載時(shí),全部都不渲染女责,當(dāng)用戶選擇指定的模塊后漆枚,再渲染指定的模塊。
    (超多模塊如果用v-if很耗性能的抵知!達(dá)咩墙基!

2.列表渲染

  • v-for 列表渲染

v-for 指令软族,用于列表渲染;類型渲染時(shí)残制,通常都要綁定key立砸,key的作用是提高渲染性能。
注意:key必須是唯一痘拆,暫時(shí)可以將列表的索引作為key值去使用仰禽。

代碼如下:

    <div>
        <ul>
            <li v-for="(item,index) in foods" :key="index">{{index}}--{{item.name}}--{{item.price}}</li>
        </ul>
    </div>
    <script>
        Vue.config.productionTip = false
        new Vue({
            el:'#app',
            data:{
                score:55,
                isShow:false,
                foods:[
                    {
                        id:1,
                        name:'薯片',
                        price:7.9
                    },
                    {
                        id:2,
                        name:'餅干',
                        price:3.9
                    },
                    {
                        id:3,
                        name:'面包',
                        price:9.9
                    },
                    {
                        id:4,
                        name:'蛋糕',
                        price:16.9
                    }
                ]
            }
        })
    </script>

頁(yè)面效果:


  • 練習(xí):輪播圖
    第一種寫法:后臺(tái)查看氮墨,頁(yè)面會(huì)有5張圖片纺蛆,通過(guò)display去顯示或者隱藏(不太好)
    <div id="app">
        <img v-for="(item,index) in imgs" :src="item" v-show="index===showActive" >
    </div>
    <script>
        Vue.config.productionTip = false
        new Vue({
            el:'#app',
            data:{
                //顯示的下標(biāo)
                showActive:0,
                //圖片數(shù)組
                imgs:["http://p1.music.126.net/7zAkp74zoKd0LuEuEP6dOg==/109951166645160829.jpg?imageView&quality=89",
                    "http://p1.music.126.net/pkXsmqmFQOehNkJYmehkng==/109951166646695577.jpg?imageView&quality=89",
                    "http://p1.music.126.net/c1olbeIgiVsj9I39fCUXkQ==/109951166644891380.jpg?imageView&quality=89",
                    "http://p1.music.126.net/JMYet32O1mi6-YZ1GGSYcQ==/109951166646419732.jpg?imageView&quality=89",
                    "http://p1.music.126.net/WCX5Cq1z17Du2z0QBEcEaA==/109951166645933077.jpg?imageView&quality=89"]
            },
            //生命周期函數(shù)(表示頁(yè)面掛載完成)
            mounted() {
                setInterval(() => {
                    this.showActive++
                    //如果下標(biāo)越界,重新從0開(kāi)始
                    if(this.showActive>=5) this.showActive = 0
                }, 3000);
            },
        })
    </script>

v-for 列表渲染规揪,循環(huán)出item和index(在組件中使用v-for循環(huán)時(shí),或在一些特殊情況中,如果v-for有問(wèn)題,必須在使用v-for的同時(shí),指定唯一的 字符串/數(shù)字 類型 :key值桥氏。)
:src綁定imgs這個(gè)數(shù)組的item
v-show 條件渲染,表達(dá)式返回true猛铅,顯示元素字支;否則不顯示元素
-- 此時(shí)頁(yè)面效果為 顯示 下標(biāo)為0的那張圖片 ,3秒后換下一張 --

mounted() { } 這個(gè)函數(shù)奸忽,是生命周期函數(shù)(表示頁(yè)面掛載完成)堕伪,
這里并沒(méi)有調(diào)用,但它會(huì)自己執(zhí)行哦栗菜。

第二種寫法:

    <div id="app">
        <img :src="imgs[showActive]" >
    </div>

只需要綁定一個(gè) :src = imgs數(shù)組[索引]
因?yàn)樵趕cript里設(shè)定了定時(shí)器欠雌,且this.showActive++ 索引會(huì)自己變,然后mounted() { } 這個(gè)函數(shù)自己執(zhí)行疙筹,頁(yè)面會(huì)更新富俄。

(未完待續(xù)...loading...)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市而咆,隨后出現(xiàn)的幾起案子霍比,更是在濱河造成了極大的恐慌,老刑警劉巖暴备,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悠瞬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡涯捻,警方通過(guò)查閱死者的電腦和手機(jī)浅妆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)汰瘫,“玉大人狂打,你說(shuō)我怎么就攤上這事』烀郑” “怎么了趴乡?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵对省,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我晾捏,道長(zhǎng)蒿涎,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任惦辛,我火速辦了婚禮劳秋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘胖齐。我一直安慰自己玻淑,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布呀伙。 她就那樣靜靜地躺著补履,像睡著了一般。 火紅的嫁衣襯著肌膚如雪剿另。 梳的紋絲不亂的頭發(fā)上箫锤,一...
    開(kāi)封第一講書(shū)人閱讀 52,196評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音雨女,去河邊找鬼谚攒。 笑死,一個(gè)胖子當(dāng)著我的面吹牛氛堕,可吹牛的內(nèi)容都是我干的馏臭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼岔擂,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼位喂!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起乱灵,我...
    開(kāi)封第一講書(shū)人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤塑崖,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后痛倚,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體规婆,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年蝉稳,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了抒蚜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耘戚,死狀恐怖嗡髓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情收津,我是刑警寧澤饿这,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布浊伙,位于F島的核電站,受9級(jí)特大地震影響长捧,放射性物質(zhì)發(fā)生泄漏嚣鄙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一串结、第九天 我趴在偏房一處隱蔽的房頂上張望哑子。 院中可真熱鬧,春花似錦肌割、人聲如沸卧蜓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)烦却。三九已至宠叼,卻和暖如春先巴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冒冬。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工伸蚯, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人简烤。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓剂邮,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親横侦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子挥萌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 一、概念介紹 Vue.js和React.js分別是目前國(guó)內(nèi)和國(guó)外最火的前端框架枉侧,框架跟類庫(kù)/插件不同引瀑,框架是一套完...
    劉遠(yuǎn)舟閱讀 1,066評(píng)論 0 0
  • 什么是Vue.js Vue.js是目前最火的一個(gè)前端框架,React是最流行的一個(gè)前端框架榨馁,(React除了開(kāi)發(fā)網(wǎng)...
    EEEEsun閱讀 643評(píng)論 0 1
  • 2019-10-22 vue文檔 一憨栽、課程介紹 https://vuejs.lipengzhou.com/ 內(nèi)容 ...
    欣簡(jiǎn)書(shū)閱讀 557評(píng)論 0 1
  • vue文檔 一、課程介紹 https://vuejs.lipengzhou.com/ 內(nèi)容 使用 Vue.js 系...
    前端陳陳陳閱讀 291評(píng)論 0 1
  • 談一下你對(duì) MVVM 的認(rèn)識(shí) https://blog.csdn.net/Dora_5537/article/de...
    Aniugel閱讀 9,614評(píng)論 1 91