File tree Expand file tree Collapse file tree
vuejs-computed-properties Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ <template >
2+ <div >
3+ <button @click =" flipSort" >Flip Sort</button >
4+ <ul >
5+ <li v-for =" bear in bears" :key =" bear.id" >
6+ {{bear.name}}
7+ </li >
8+ </ul >
9+ <button @click =" newBear" >New Bear</button >
10+ </div >
11+ </template >
12+
13+ <script >
14+ module .exports = {
15+ props: [' beardb' ],
16+ data () {
17+ return {
18+ sort: 1 ,
19+ rawBears: this .beardb
20+ }
21+ },
22+ computed: {
23+ bears: {
24+ get () {
25+ console .log (' HELLO!' )
26+ const result = Object .keys (this .rawBears ).map ((id ) => {
27+ const bear = this .rawBears [id]
28+ bear .id = id
29+ return bear
30+ })
31+ result .sort ((a , b ) => {
32+ return a .name .localeCompare (b .name ) * this .sort
33+ })
34+ return result
35+ },
36+ set (newValue ) {
37+ this .$set (this .rawBears , ' autoid' , {
38+ name: newValue
39+ })
40+ }
41+ }
42+ },
43+ watch: {
44+ bears (newValue , oldValue ) {
45+
46+ }
47+ },
48+ methods: {
49+ flipSort () {
50+ this .sort = this .sort === 1 ? - 1 : 1
51+ },
52+ newBear () {
53+ this .bears = ' Ozma'
54+ // this.$set(this.rawBears, 'newid', {
55+ // name: 'Steve'
56+ // })
57+ // this.rawBears = Object.assign({}, this.rawBears, {
58+ // 'newid': {
59+ // name: 'Steve'
60+ // }
61+ // })
62+ // this.beardb['newid'] = {
63+ // name: 'Steve'
64+ // }
65+ // delete this.beardb['bear1']
66+ }
67+ }
68+ }
69+ </script >
Original file line number Diff line number Diff line change 1+ # Vue.js Computed Properties
2+
3+ > [ https://www.youtube.com/watch?v=8antoF7LyIo ] ( https://www.youtube.com/watch?v=8antoF7LyIo )
4+
5+ Install [ Node.js] ( https://nodejs.org/ ) .
6+
7+ Within this folder run the terminal command ` npm install ` to install the
8+ ` dependencies ` and ` devDependencies ` .
9+
10+ Then run ` npm start ` to run the app viewable on ` http://localhost:9966 ` .
Original file line number Diff line number Diff line change 1+ <!DOCTYPE html>
2+ < html lang ="en ">
3+ < head >
4+ < meta charset ="UTF-8 ">
5+ < title > Document</ title >
6+ </ head >
7+ < body >
8+ < div id ="app "> </ div >
9+ < script src ="bundle.js " charset ="utf-8 "> </ script >
10+ </ body >
11+ </ html >
Original file line number Diff line number Diff line change 1+ const Vue = require ( 'vue' )
2+ const App = require ( './App.vue' )
3+
4+ const beardb = {
5+ 'bear1' : {
6+ name : 'Oliver' ,
7+ type : 'grizzly'
8+ } ,
9+ 'bear3' : {
10+ name : 'Sheryl' ,
11+ type : 'brown'
12+ } ,
13+ 'bear55' : {
14+ name : 'Frank' ,
15+ type : 'polar'
16+ } ,
17+ }
18+
19+ new Vue ( {
20+ el : '#app' ,
21+ render : function ( h ) {
22+ return h ( App , {
23+ props : {
24+ beardb : beardb
25+ }
26+ } )
27+ }
28+ } )
Original file line number Diff line number Diff line change 1+ {
2+ "name" : " vuejs-computed-properties" ,
3+ "version" : " 0.1.0" ,
4+ "description" : " " ,
5+ "main" : " index.js" ,
6+ "scripts" : {
7+ "start" : " budo index.js:bundle.js -- -t vueify" ,
8+ "test" : " node test.js"
9+ },
10+ "browser" : {
11+ "vue" : " vue/dist/vue.common.js"
12+ },
13+ "author" : " Kyle Robinson Young <kyle@dontkry.com> (http://dontkry.com)" ,
14+ "license" : " MIT" ,
15+ "devDependencies" : {
16+ "budo" : " ^11.2.0" ,
17+ "vueify" : " ^9.4.1"
18+ },
19+ "dependencies" : {
20+ "vue.js" : " ^0.3.2"
21+ }
22+ }
You can’t perform that action at this time.
0 commit comments