最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue的基本知識你都了解嗎

 更新時間:2022年02月24日 17:12:48   作者:Tree_wws  
這篇文章主要為大家詳細介紹了Vue的基本知識,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助

1. Vue的基本知識

1.1 Vue的使用

  • 可以導入Vue文件或者是通過CDN引入
  • 想要讓Vue工作就必須要創(chuàng)建一個Vue的實例對象,并且配置對象
  • 在真實的開發(fā)中只有一個Vue的實例,并且配合組件一起使用

1.2 插值語法

<div>
  	<h1>
  			Hello!{{name}} {{Date.now()}} {{address}}
  	</h1>
  </div>

<script>
  Vue.config.productionTip = false  //阻止vue在生成時自動產(chǎn)生提示
//創(chuàng)建Vue實例
new Vue({
	el:'#root', //el用于指定當前Vue實例為哪個容器服務,值通常為css選擇器字符串。
	data:{ //data中用于存儲數(shù)據(jù),數(shù)據(jù)供el所指定的容器去使用,值我們暫時先寫成一個對象。
		name:'Tree',
		address:'China'
	}
})
  </script>

注意點:

1.{ { xxx } } 這里的xxx要寫的是js表達式,并且它會自動讀取到data中所有的屬性

2.一旦data中的數(shù)據(jù)發(fā)生改變,那么頁面用帶該數(shù)據(jù)的地方也會自動更新

3.插值語法的功能:用于去解析標簽體內(nèi)容,標簽體就是起始標簽和結(jié)束標簽中間的內(nèi)容,例如:<h1> xxx </h1> xxx就是標簽體

4.要區(qū)分什么是js表達式?什么是js代碼?

    1. 什么是js表達式?
       表達式可以產(chǎn)生一個值或者返回一個值
         (1) a = 1
         (2) a+b
         (3) Date.now() 函數(shù)
         (4) x = Y ? 1 : 2
                   
 	2. 什么是js代碼?(語句)
     	(1) if(){}
     	(2) for(){}
		js表達式就是一種特殊的js代碼

1.3 v-bind(單向綁定)

? 指令語法有很多,下面例子只是其中一個 v-bind: ===> 可以簡寫為 :

? 加入該指令后 " " 里的內(nèi)容就會變成js表達式,而不是字符串(這個知識點很重要后面使用的地方會很多)

? 該方法是解析標簽得屬性,指令的功能很強大可以解析標簽(例如:解析標簽體,標簽屬性,綁定事件)

<div class="wrapper">
        <h1>你好?。{name}}</h1>
        <hr>
        <a :href="school.url">點擊進入{{school.name}}</a>
        <a v-bind:href="school.url">點擊進入{{school.name}}</a>
    </div>
   <script>
       Vue.config.productionTip = false
       new Vue({
        el:".wrapper",
        data:{
            name:"Tree",
            school:{
                name: "bilibili",
                url:"https://www.bilibili.com/"
            }
        }
       })
   </script>

1.4 v-model(雙向綁定)

1.4.1 v-model和v-bind的區(qū)別

  • v-bind(單項綁定):數(shù)據(jù)只能從data流向頁面
  • v-model(雙向綁定):不僅數(shù)據(jù)從data流向頁面,而且可以從頁面流向data
  • 雙向綁定一般用在表單類元素上面(input,select,含有value屬性值)
  • 如果遇到像checkbox這種類型的沒有value值時,v-model/ v-bind 傳boolearn值可以去控制該類型的狀態(tài)
    <div class="wrapper">
        <!-- 普通寫法 -->
        <!-- 單項數(shù)據(jù)綁定: <input type="text" v-bind:value="name"><br>
        雙向數(shù)據(jù)綁定: <input type="text" v-model:value="name"> -->
        <!-- 簡便寫法 -->
        單項數(shù)據(jù)綁定: <input type="text" :value="name"><br>
        雙向數(shù)據(jù)綁定: <input type="text" v-model="name">
    </div>
    <script>
        Vue.config.productionTip = false
        new Vue({
            el:".wrapper",
            data:{
                name:"Hello"
            }
        })
    </script>

1.4.2 v-model 簡單小例子

<div class="root">
        <input type="text" v-model="message">
        <p>{{message}}</p>
    </div>
    <script>
        Vue.config.productionTip = false   //阻止vue在生成時自動產(chǎn)生提示
        new Vue({
            el:".root",
            data:{
                message:'Hello! Vue'
            }
        })
    </script>

1.4.3 v-model 收集表單案例

1.v-model的三個修飾符:

  • v-model.trim: 去掉前后空格
  • v-model.number:將收到的數(shù)據(jù)轉(zhuǎn)換為number類型
  • v-model.lazy:表示當失去焦點的時候再接收數(shù)據(jù)

2.v-model收集的就是value的值

  • 當input類型為radio,需要我們?nèi)ナ謩优渲靡粋€value值
  • 當input類型為checkbox,它返回的布爾值,根據(jù)情況進行是否配置value值
  • 記住如果收集的是多個,屬性值要是一個空的數(shù)組
 <div id="root">
        <form @submit.prevent="demo"> <!-- 當點擊按鈕時,會有默認行為提交信息,刷新頁面-->
            <!-- v-model.trim表示去掉前后空格 -->
            賬號:<input type="text" v-model.trim="userinfo.account"><br><br>
            密碼:<input type="password" v-model="userinfo.password"><br><br>
            <!-- input類型的number是限制用戶的輸入,而v-model.number是將收到的數(shù)據(jù)轉(zhuǎn)換為number類型,二者配合使用 -->
            年齡:<input type="number" v-model.number="userinfo.age"><br><br>
            性別:
            <!-- 對于單選項,我們通過取相同的名字來表示是一組的 -->
            男<input type="radio" v-model="userinfo.sex" name="sex" value="男">
            女<input type="radio" v-model="userinfo.sex" name="sex" value="女"><br><br>
            愛好:
            <input type="checkbox" v-model="userinfo.hobby" value="打籃球">打籃球
            <input type="checkbox" v-model="userinfo.hobby" value="敲代碼">敲代碼
            <input type="checkbox" v-model="userinfo.hobby" value="干飯">干飯
            <br><br>
            所屬校區(qū):
            <select v-model="userinfo.address">
                <option value="">請選擇地區(qū)</option>
                <option value="北京">北京</option>
                <option value="上海">上海</option>
                <option value="廣州">廣州</option>
                <option value="深圳">深圳</option>
            </select><br><br>
            <!-- v-model.lazy:表示當失去焦點的時候再接收數(shù)據(jù) -->
            其他信息:<textarea cols="20" rows="3" v-model.lazy="userinfo.other"></textarea>
            <br><br>
            <input type="checkbox" v-model="userinfo.agree">同意并接受
            <a href="#" style="text-decoration: none;">《用戶協(xié)議》</a>
            <br><br>
            <button>提交</button>
        </form>
    </div>
    <script>
        Vue.config.productionTip = false
        let vm = new Vue({
            el: '#root',
            data: {
                userinfo:{
                    account:"",
                    password:"",
                    age:"",
                    sex:"",
                    hobby:[],
                    address:"",
                    other:"",
                    agree:""
                },
            },
            methods: {
                demo(){
                    console.log(JSON.stringify(this.userinfo));
                }
            },
        })
    </script>

1.5 理解MVVM

在這里插入圖片描述

M

模型(Model) :data中的數(shù)據(jù)

V

視圖(View) :模板代碼(不是靜態(tài)頁面)

VM

viewModel: 視圖模型(Vue的實例)

對MVVM的理解:

MVVM 本質(zhì)上即模型-視圖-視圖模型。模型model指的是后端傳遞的數(shù)據(jù),視圖view指的是所看到的頁面。視圖模型viewModel是 mvvm 模式的核心,它是連接 view 和 model 的橋梁。它有兩個方向:

將模型轉(zhuǎn)化成視圖,即將后端傳遞的數(shù)據(jù)轉(zhuǎn)化成所看到的頁面。實現(xiàn)的方式是:數(shù)據(jù)綁定

將視圖轉(zhuǎn)化成模型,即將所看到的頁面轉(zhuǎn)化成后端的數(shù)據(jù)。實現(xiàn)的方式是:DOM 事件監(jiān)聽

這兩個方向都實現(xiàn)的,我們稱之為數(shù)據(jù)的雙向綁定

1.6 Object.defineProperty(重要)

 Object.defineProperty
                - 第一個參數(shù):指定的對象
                - 第二個參數(shù):要添加的屬性名
                - 第三個參數(shù):配置項
<script>
        let number = 20
        Vue.config.productionTip = false  //阻止默認提示
        var person = {
            name : "jack",
            address : "hgs"
        }
        Object.defineProperty(person,"age",{
            // value: 18 ,
            // enumerable:true,   控制屬性是否能夠進行枚舉,默認值false
            // writable:true,     控制屬性是否能夠被修改,默認值false
            // configurable:true  控制屬性是否能夠被刪除,默認值fasle
            // 上面屬于基本配置,下面get和set很重要
            //當有人讀取person的age屬性時get函數(shù)(getter)就會被調(diào)用,返回的值就是age的值
            get(){
                console.log("讀取成功!");
                return number
            },
            //當有人修改Person的age屬性時set函數(shù)(setter)就會被調(diào)用,修改后的值就會被獲取到value
            set(value){
                console.log("修改的值: "+value);
                number = value
            }
        })

1.7 數(shù)據(jù)代理(重要)

自我對于數(shù)據(jù)代理的理解:

  • 當創(chuàng)建vm實例對象后,它會在里面添加很多屬性,它會將data的數(shù)據(jù)傳入到vm下的_data中去,并且把_data的數(shù)據(jù)利用Object.defineProperty也就是數(shù)據(jù)代理到vm中去通過getter和setter去讀/修改,這樣做的目的是方便寫代碼,直接{{name}},不用{{_data.name}}.
  • vue中的數(shù)據(jù)代理通過vm對象去代理data對象的屬性的操作給每一個添加到vm上的屬性,配置一個getter和setter通過getter和setter去操作data里的屬性
    <div id="root">
    	<h1>Hello!{{_data.name}}</h1>
        <h1>Hello!{{_data.address}}</h1>
        <h1>Hello!{{name}}</h1>
        <h1>Hello!{{address}}</h1>
    </div>
    <script>
        Vue.config.productionTip = false  //阻止默認的提示
        var vm = new Vue({
            el: '#root',
            data: {
                name:"Jack",
                address:"China"
            }
        })
    </script>

總結(jié)

以上就是今天要講的內(nèi)容,本文僅僅簡單介紹了Vue的一些基本知識,希望對大家有幫助!

相關文章

  • vue elementUI實現(xiàn)拖拽流程圖效果

    vue elementUI實現(xiàn)拖拽流程圖效果

    這篇文章主要為大家詳細介紹了如何通過vue elementUI實現(xiàn)拖拽流程圖效果,不引入插件,純手寫實現(xiàn),感興趣的小伙伴可以跟隨小編一起學習一下
    2025-01-01
  • vuejs 切換導航條高亮(路由菜單高亮)的方法示例

    vuejs 切換導航條高亮(路由菜單高亮)的方法示例

    這篇文章主要介紹了vuejs 切換導航條高亮路由高亮的方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • vue中{{}},v-text和v-html區(qū)別與應用詳解

    vue中{{}},v-text和v-html區(qū)別與應用詳解

    這篇文章主要介紹了vue中{{}},v-text和v-html區(qū)別與應用詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • vue+element開發(fā)使用el-select不能回顯的處理方案

    vue+element開發(fā)使用el-select不能回顯的處理方案

    這篇文章主要介紹了vue+element開發(fā)使用el-select不能回顯的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue中實現(xiàn)子組件相互切換且數(shù)據(jù)不丟失的策略詳解

    vue中實現(xiàn)子組件相互切換且數(shù)據(jù)不丟失的策略詳解

    項目為數(shù)據(jù)報表,但是一個父頁面中有很多的子頁面,而且子頁面中不是相互關聯(lián),但是數(shù)據(jù)又有聯(lián)系,所以本文給大家介紹了vue中如何實現(xiàn)子組件相互切換,而且數(shù)據(jù)不會丟失,并有詳細的代碼供大家參考,需要的朋友可以參考下
    2024-03-03
  • vue中使用element日歷組件的示例代碼

    vue中使用element日歷組件的示例代碼

    這篇文章主要介紹了vue中如何使用element的日歷組件,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • vue項目依賴檢查depcheck問題

    vue項目依賴檢查depcheck問題

    這篇文章主要介紹了vue項目依賴檢查depcheck問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • Vue后臺實現(xiàn)點擊圖片放大功能的示例代碼

    Vue后臺實現(xiàn)點擊圖片放大功能的示例代碼

    這篇文章主要為大家詳細介紹了如何利用Vue實現(xiàn)點擊圖片放大功能,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2022-12-12
  • vue實現(xiàn)定時刷新數(shù)據(jù),每隔5分鐘執(zhí)行一次

    vue實現(xiàn)定時刷新數(shù)據(jù),每隔5分鐘執(zhí)行一次

    這篇文章主要介紹了vue實現(xiàn)定時刷新數(shù)據(jù),每隔5分鐘執(zhí)行一次問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue鼠標懸停事件監(jiān)聽實現(xiàn)方法

    vue鼠標懸停事件監(jiān)聽實現(xiàn)方法

    頁面在鼠標懸停(不動)n秒之后,頁面進行相應的事件,下面這篇文章主要給大家介紹了關于vue鼠標懸停事件監(jiān)聽的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09

最新評論

信丰县| 诸暨市| 台前县| 阜平县| 金山区| 体育| 山丹县| 陇川县| 石门县| 绥宁县| 玉环县| 同江市| 邵东县| 九龙城区| 辽中县| 灵台县| 湘乡市| 佛学| 赣榆县| 新巴尔虎左旗| 思南县| 武汉市| 高雄市| 大冶市| 卓尼县| 深泽县| 正定县| 卓尼县| 黑龙江省| 喀喇沁旗| 奈曼旗| 稻城县| 民丰县| 鄢陵县| 同德县| 甘泉县| 诸城市| 新闻| 灌阳县| 和硕县| 盐亭县|