vue學習04

一路由

<script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script>
        <!-- 引入路由模塊 -->
        <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
        <link rel="stylesheet"  href="../bootstrap.css"/>
    </head><style>
          .router-link-active,.myactive{
                color:yellow;
                font-size: 50px;
                font-style: italic;
                text-decoration: underline;
                background: green;
                /* 紅配綠 */
            }
            
            .v-enter,
            .v-leave-to{
                opacity: 0;
                transform: translateX(100px);
            }
            .v-enter-active,
            .v-leave-active{
                transition: all .5s ease;
            } 
        </style> 

<body>
        <div id="app">
            
            <!-- <a href="#/login/id=7/name='clearlove'">登錄</a>
            <a href="#/register">注冊</a> -->
            


  
           <!-- 使用 router-link 組件來導航. -->
            <!-- 通過傳入 `to` 屬性指定鏈接. -->
            <!-- <router-link> 默認會被渲染成一個 `<a>` 標簽 -->
            <router-link to="/login/id='7'/name='clearlove7'" tag="span">login</router-link>
            <router-link to="/register?id='9527'">register</router-link>
            <!-- 路由出口 -->
            <!-- 路由匹配到的組件將渲染在這里 -->
            
            <transition mode="out-in">
                <router-view></router-view>
            </transition>
        </div>
    </body>

<script>
        // 創(chuàng)建組件模板對象
        var  login ={
            template:'<div>登錄組件--{{$route.params.id}}--{{this.$route.params.name}}</div>',
         //組件的生命周期函數(shù)
            created(){
                 console.log(this.$route.params.id)
                console.log(this.$route.params.name) 
            }
        }
        var  register ={
            template:'<div>祖冊組件--{{$route.query.id}}--</div>',
            created(){
                 console.log(this.$route.query.id)
            }
        }
        // 創(chuàng)建路由對象
        // 當導入vue-route包之后,在window全局對象中,就有了一個路由的構(gòu)造函數(shù),叫做VueRouter
        var routerObj=new VueRouter({
             // 這個配置對象中的route表示【路由匹配規(guī)則】
            // 每個路由規(guī)則推穷,都是一個對象及舍,這個對象身上,有兩個必須的屬性
            // 屬性1:path——表示監(jiān)聽 那個路由鏈接地址
            // 屬性2:component——表示蔽挠,如果路由是前面匹配到的path淆两,則展示component屬性對應的組件

            routes:[
              // {path:'/',component:login},
                 {path:'/',redirect:'/login'}, //重定向
                {path:"/login/:id/:name",component:login},
              //component必須是一個組件模板對象断箫,不能是一個組件的引用名稱
                {path:'/register',component:register},
            ],
           // 更改激活類(根據(jù)這個類可以改樣式)
            linkActiveClass:'router-link-active'//默認就是這個哦
        })
        // 實例化vue對象
        var vm =new Vue({
            // 綁定對象
            el:'#app',
            data:{},
            methods:{},
            router:routerObj//將路由規(guī)則對象,注冊到vm實例上秋冰,用來監(jiān)聽URL地址變化仲义,然后展示對應的組件
        })
        
    </script>
圖片.png

路由的嵌套

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title><script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script>
        <!-- 引入路由模塊 -->
        <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
        <link rel="stylesheet"  href="../bootstrap.css"/>
    </head><style>
           .router-link-active,.myactive{
                color:yellow;
                font-size: 50px;
                font-style:inherit;
                text-decoration: underline;
                background: green;
                /* 紅配綠 */
            }
            
            .v-enter,
            .v-leave-to{
                opacity: 0;
                transform: translateX(100px);
            }
            .v-enter-active,
            .v-leave-active{
                transition: all .5s ease;
            } 
        </style> 
    <body>
        <div id="app">
            <p>{{name}}</p>
            <router-link to="/zoro">zoro</router-link>
            <router-view></router-view>
        </div>
        <template id="t1">
            <div > 
                    <h1>這是zoro組件</h1>
                     <router-link to="/zoro/login"/>login</router-link>|
                     <router-link to="/zoro/register"/>register</router-link>
                     <router-view></router-view>
            </div>
        </template>
    </body>
    
    <script>
            var  zoro={
                template:"#t1"
            }
            var login={
                template:"<div>登錄組件</div>"
            }
            var register={
                template:"<div>注冊組件</div>"
            }
            
            var router= new VueRouter({
                routes:[
                    {path:'/zoro',component:zoro,children:[
                        {path:'login',component:login},
                        {path:'register',component:register}
                    ]},
                ]
            })
        
        var vm =new Vue({
            el:'#app',
            data:{
                name:'pony'
            },
            methods:{},
            router
        })
    </script>
</html>

圖片.png
圖片.png
圖片.png

二評論列表的實現(xiàn)

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title><script src='https://cdn.jsdelivr.net/npm/vue/dist/vue.js'></script>
        <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
        <link rel="stylesheet"
         
        integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u"
        crossorigin="anonymous">
    </head>
    <body>
        <div id="app">
            <cmt-box @func="loadComments"></cmt-box>
            
            <ul>
                <li class="list-group-item" v-for="item in list" :key="item.id">
                    <span class="badge">評論人:{{item.user}}</span>
                    {{item.content}}
                </li>
            </ul>
        </div>
        
        <template id="tmp1">
            <div>
                <div class="form-group">
                    <label>評論人:</label>
                    <input type="text" class="form-control" v-model="user">
                </div>
                <div class="form-group">
                    <label>評論內(nèi)容:</label>
                    <textarea class="form-control" v-model="content"></textarea>
                </div>
                <div class="form-group">
                    <input type="button" class="btn btn-primary" value="發(fā)表評論" @click="postComment">
                </div>                    
            </div>
            
        </template>
    </body>
    <script>
         let commentBox = {
            template:'#tmp1',
            data(){
                return {
                    user:'',
                    content:''
                }
            },
            methods:{
                postComment(){
                    if(this.user == '' || this.content == ''){
                        alert("請?zhí)顚懻_內(nèi)容")
                        return
                    }
                    // 分析:發(fā)表評論的業(yè)務邏輯
                    // 1、評論數(shù)據(jù)存到哪里去剑勾?埃撵? 存放到 localStorage 中
                    // 2、先組織出一個最新的評論數(shù)據(jù)對象
                    // 3虽另、想辦法盯另,把 第二步中,得到的評論對象洲赵。保存到 localStorage中
                    // 3.1localStorage 只支持存放字符串數(shù)據(jù),要先調(diào)用JSON.stringify
                    // 3.2在保存最新的評論數(shù)據(jù)之前商蕴,要先從localStorage獲取到之前評論數(shù)據(jù)
                    // 3.3需要先判斷l(xiāng)ocalStorage中有無數(shù)據(jù)叠萍,若沒有,返回"[]"
                    // 3.4發(fā)最新的列表數(shù)據(jù)绪商,再次調(diào)用JSON苛谷。stringify轉(zhuǎn)為數(shù)組字符串
                    let comment = {id:Date.now(),user:this.user,content:this.content}
                    // 從localStorage中獲取評論
                    let list = JSON.parse(localStorage.getItem('cmts') || "[]")
                    list.unshift(comment)
                    // 重新保存
                    localStorage.setItem('cmts',JSON.stringify(list))

                    this.user = ''
                    this.content = ''

                    this.$emit("func")
                }
            }
        }
        
        let vm = new Vue({
            // 綁定對象
            el:'#app',
            data:{
                list:[]
            },
            methods:{
                // 從本地的localStorage中,加載評論
                loadComments(){
                    let list = JSON.parse(localStorage.getItem('cmts') || "[]")
                    this.list = list
                }
            },
            components:{
                'cmt-box':commentBox
            },
            created() {
                this.loadComments()
            },
        })
        
    </script>
</html>

圖片.png

https://github.com/shy1118999/vue.js

視圖的名稱是變量還是字符串格郁?
<router-view name="left"></router-view>他是一個值 name后面
:后面是變量
不加冒號永遠是字符串

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腹殿,一起剝皮案震驚了整個濱河市独悴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锣尉,老刑警劉巖刻炒,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異自沧,居然都是意外死亡坟奥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門拇厢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來爱谁,“玉大人,你說我怎么就攤上這事孝偎》玫校” “怎么了?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵衣盾,是天一觀的道長寺旺。 經(jīng)常有香客問我,道長雨效,這世上最難降的妖魔是什么迅涮? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮徽龟,結(jié)果婚禮上叮姑,老公的妹妹穿的比我還像新娘。我一直安慰自己据悔,他們只是感情好传透,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著极颓,像睡著了一般朱盐。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上菠隆,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天兵琳,我揣著相機與錄音,去河邊找鬼骇径。 笑死躯肌,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的破衔。 我是一名探鬼主播清女,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼晰筛!你這毒婦竟也來了嫡丙?” 一聲冷哼從身側(cè)響起拴袭,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎曙博,沒想到半個月后拥刻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡羊瘩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年泰佳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片尘吗。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡逝她,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睬捶,到底是詐尸還是另有隱情黔宛,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布擒贸,位于F島的核電站臀晃,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏介劫。R本人自食惡果不足惜徽惋,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望座韵。 院中可真熱鬧险绘,春花似錦、人聲如沸誉碴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽黔帕。三九已至代咸,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間成黄,已是汗流浹背呐芥。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留奋岁,地道東北人思瘟。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像厦取,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子管搪,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

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